我是新来的C#及其概念,所以我很抱歉,如果这个问题是一种愚蠢的。 我尝试使用的WinForms WebBrowser控件WebBrowser控件 - 等待页面加载后提交表格
elements = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement element in elements)
{
if (element.GetAttribute("value") == "Anzeigen")
element.InvokeMember("click");
}
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
// do some math on recived html
// ......
// show results
MessageBox.Show(numPlanets.ToString());
所以做一些automatation,来解释它: 进出口寻找值为“Anzeigen”按钮,模拟就可以了一下,然后等到新页然后加载并做我的计算。 不幸的是,我的计算是在旧的HTML内容上完成的,因为它没有等待页面加载。奇怪的是,如果我输入一个Thread.Sleep(5000);在foreach循环之后,在模拟点击之前执行该睡眠,并且计算也失败。
我只是需要一些同步行为,没有使用事件。
希望你能帮助我与,对不起我的英文不好
编辑: 解决这样的: 变量BOOL webbbrowserfinished里面的类=假,如果我想要同步的行为,我不喜欢这样:
webbrowserfinished = false;
// do navigation here
while (!webbrowserfinished)
{
Application.DoEvents();
Thread.Sleep(100);
}
webbrowserfinished = false;
为什么不你想使用事件吗? –
这是不可能的,国际海事组织。我使用了web浏览器控件_a lot_,包括[编辑模式](http://www.codeproject.com/Articles/43954/ZetaHtmlEditControl)。我从来没有找到同步解决方案,因为我确实认为加载只是异步进行的。 –