代码如下 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提示框。但是没有,似乎根本没有响应这个事件,或者没有转到这个事件处理程序。
{
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提示框。但是没有,似乎根本没有响应这个事件,或者没有转到这个事件处理程序。
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的事件处理方法有什么问题?
autoLogin()这个函数一执行完autoLoginWebBrowser就被释放了,肯定不会激发相应的事件的。
把autoLoginWebBrowser提到所在类定义试试。