【发布时间】:2013-02-04 04:52:28
【问题描述】:
我有一个简单的 C# 应用程序,其中包含按钮和 Web 浏览器,每个按钮执行一个请求并在 Web 浏览器上显示请求的结果。并在下一个按钮中使用请求的结果。
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.test.com");
}
private void button2_Click(object sender, EventArgs e)
{
if (webBrowser1.Document.GetElementById("tesxtbox1") != null)
{
HtmlElement txt1 = webBrowser1.Document.GetElementById("tesxtbox1");
txt1.SetAttribute("value", "test");
webBrowser1.Document.Forms[0].InvokeMember("submit");
}
}
是否有任何方法或方式可以通过单击执行两个按钮,但是第二个按钮在加载网络浏览器之前不执行。
在第一个按钮中,我添加了
webBrowser1.DocumentCompleted + = new WebBrowserDocumentCompletedEventHandler (Button2_Click);
但是第二个按钮执行了几次,所以我在按钮2的最后一行添加了:
webBrowser1.DocumentCompleted - = new WebBrowserDocumentCompletedEventHandler (Button2_Click);
它有效,但在控制台中我发现按钮 2 执行了两次
提前致谢!
【问题讨论】:
-
@JMK:我认为这里的问题不是两个方法一个接一个地执行,而是将第二个调用延迟到导航完成
-
@Nuffin 对不起,你是对的,WebBrowser 对象有一个加载的事件,我相信你可以订阅它
标签: c# .net visual-studio-2010 browser