使用事件代理
例:
SHDocVw.DWebBrowserEvents_BeforeNavigateEventHandler BeforeNavigateE = 
new SHDocVw.DWebBrowserEvents_BeforeNavigateEventHandler(this.OnBeforeNavigate);
this.tmpWBB.BeforeNavigate += BeforeNavigateE;
再写一个OnBeforeNavigate方法如:
private void OnBeforeNavigate(string url,int flags,string tf,ref object pd,string h,ref bool can)
{
//在这儿写
}

解决方案 »

  1.   

    >>>换页操作either use WebBrowser's Navigate method or use mshtml to trigger a link or button in the page, seeUsing the WebBrowser control in .NET
    http://www.codeproject.com/csharp/webbrowser.aspUsing MSHTML Advanced Hosting Interfaces
    http://codeproject.com/csharp/advhost.asp
      

  2.   

    gujunyan(ivy阿亮)大哥的办法我没看懂,saucer(思归)大哥的两篇文章我看了,可是依然云里雾里,继续求助!
      

  3.   

    1. add a refrenec to Microsoft mshtml library2. say you have a page like
    <html>
    <body>
    <form>
    <a id="mylink" href="http://www.cnn.com" target="_blank">cnn</a>
    <input type="button" id="mybtn" name="mybtn" value="click me" onclick="javascript:alert('I am clicked')" >
    </form>
    </body>
    </html>3. tryprivate void button1_Click(object sender, System.EventArgs e)
    {
      mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)axWebBrowser1.Document;
      mshtml.HTMLInputElementClass btn = (mshtml.HTMLInputElementClass)doc.getElementById("mybtn");
      btn.click();
    }private void button3_Click(object sender, System.EventArgs e)
    {
      mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)axWebBrowser1.Document;
      mshtml.HTMLAnchorElementClass link = (mshtml.HTMLAnchorElementClass)doc.getElementById("mylink");
      link.click();
    }
    4. some useful links:http://www.c-sharpcorner.com/Internet/WebBrowserInCSMDB.asphttp://www.csharphelp.com/archives/archive146.html