2012-05-03 16 views
2

私はtextboxeslabelsbuttonwebbrowserの小さなプログラムを作っています。コードは80行以下で、その中にはボタンのクリックイベントがあり、webbrowserにテキストボックスに入力されたリンクがあり、neviage()関数が呼び出され、2番目のイベントはブラウザのドキュメント完了イベントです。私はGoogleで検索し、アクセス違反についてのstackoverflowに多くのことを検索しました非常に小さなプログラムでのアクセス違反例外C#

enter image description here

に従いますが、私は私の目的のために何かを見つけることができなかったとして、エラーがあります。例外は特定の時点では発生しません。スタックトレースなしで、ランダムに出現し、常にApplication.Runになります!

私を最も悩ますことの1つは、tryブロックでエラーが発生しており、キャッチされていないことです。

この例外の解決法はありますか?私はデバッグ - >例外 - >共通言語ランタイム例外 - >システムとスローチェックに行きましたが、動作しませんでした。

私は初心者のプログラマーですので、私の経験不足を許してください!

EDIT:コード

public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void simpleButton_Go_Click(object sender, EventArgs e) 
     { 
      webBrowser1.Navigate(textEdit_url.Text); 
      webBrowser1.ScriptErrorsSuppressed = true; 
     } 

     private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 
      if (webBrowser1.Url.ToString().Contains("member/login")) 
      { 
       if (webBrowser1.Document.GetElementById("email_address")!=null) 
       {      
        webBrowser1.Document.GetElementById("email_address").SetAttribute("value", textEdit_username.Text); 
        webBrowser1.Document.GetElementById("member_password").SetAttribute("value", textEdit_password.Text); 

        var c = webBrowser1.Document.GetElementsByTagName("button"); 
        foreach (HtmlElement element in c) 
        { 
         if (element.InnerText == "Login") 
          element.InvokeMember("click"); 
        } 
       } 
      } 
      if (webBrowser1.Document.GetElementById("toolbar_login") != null && webBrowser1.Document.GetElementById("toolbar_login").InnerText == "Log In") 
      { 
       webBrowser1.Navigate("www.somesite.com"); 
      } 
      else if (webBrowser1.Url.ToString() == textEdit_url.Text) 
      { 

       var c = webBrowser1.Document.GetElementsByTagName("button"); 
       foreach (HtmlElement element in c) 
       { 
        if (element.InnerText == "Add to this list") 
        { 
         element.InvokeMember("click"); 

         var te = webBrowser1.Document.GetElementsByTagName("textarea"); 
        } 
       } 
      } 
      else 
       webBrowser1.Navigate(textEdit_url.Text); 
     } 

EDIT:

としては、私は、DevExpress社を削除し、新たなWinフォームプロジェクトを作った、それにコードをコピーしてもエラーが来た提案を更新します。新しいプロジェクトのスタックトレースは、問題がDevExpress社のコンポーネントである引き起こす可能性があるものの

at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 
    at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
    at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
    at System.Windows.Forms.Application.Run(Form mainForm) 
    at app.Program.Main() in C:\Documents and Settings\admin\My Documents\Visual Studio 2010\Projects\app\app\Program.cs:line 18 
    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Threading.ThreadHelper.ThreadStart() 
+0

F11とデバッグポイントを使用すると、何がわかりますか? –

+1

Form1のコンストラクタをポストします。 – cadrell0

+0

[コールスタック]ウィンドウを開き、例外が本当に*発生した場所を示すスタックをポストします。 – kuba

答えて

0

一つです。私は同様の問題を抱えていた - ソリューションはバーマネージャーを初期化する力でした。したがって、あなたは試すことができます:

  1. DevExpressコンポーネントを削除し、それが動作するかどうかを確認します。
  2. InitializeComponentメソッド(Form1.Designer.csファイル内)にブレークポイントを設定し、各行をステップ実行します。いずれかの行にエラーが発生する必要があります。あなたがその行を見つけたら、エラーを再現しようとするか、それを修正する方法を見つけようとする可能性があります。

また、管理者としてVisual Studioを起動しようとしました。

+0

が削除されました。まだエラーが発生しています。エラーのスタックトレースを更新しました。 – Cancer

+0

デバッグInitializeComponentメソッドを試しましたか?また[このスレッドの回答](http://social.msdn.microsoft.com/Forums/eu/wpf/thread/9974d41a-4384-40fe-8e83-8d62d1d5fc7f)を見てください。 – Reniuz

関連する問題