代码如下        private void 载入网页ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Thread autoLoginThread = new Thread(new ThreadStart(autoLogin));
            autoLoginThread.SetApartmentState(ApartmentState.STA);
            autoLoginThread.Start();
        }        private void autoLogin()
        {
            WebBrowser autoLoginWebBrowser = new WebBrowser();
            autoLoginWebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(autoLoginWebBrowser_DocumentCompleted);            autoLoginWebBrowser.Url = new Uri("http://mail.126.com");
        }        void autoLoginWebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            MessageBox.Show("ok");
        }
以我的想法,应该在选中载入网页这个菜单后,在线程里面的webbrowser会载入对应URL的文档,然后会弹出ok提示框。但是没有,似乎根本没有响应这个事件,或者没有转到这个事件处理程序。

解决方案 »

  1.   

      加这群 交流一下86594082  专门的 C#/.net 群
      

  2.   

    DocumentCompleted这个事件不一定会被激发,最好是用Navigated这个事件。
      

  3.   


            private void autoLogin()
            {
                WebBrowser autoLoginWebBrowser = new WebBrowser();
                autoLoginWebBrowser.Navigated += new WebBrowserNavigatedEventHandler(autoLoginWebBrowser_Navigated);
                //autoLoginWebBrowser.Navigated += new WebBrowserNavigatedEventHandler(autoLoginWebBrowser_DocumentCompleted);
                autoLoginWebBrowser.Url = new Uri("http://mail.126.com");        }代码已经被我改了,但是似乎还不好用,是不是在线程里面添加activex的事件处理方法有什么问题?
      

  4.   

    你把autoLoginWebBrowser当函数内的局部变量处理了?
    autoLogin()这个函数一执行完autoLoginWebBrowser就被释放了,肯定不会激发相应的事件的。
    把autoLoginWebBrowser提到所在类定义试试。