我目前正在WinForm
-
public Form1()
{
InitializeComponent();
webBrowser1.AllowNavigation = true;
webBrowser1.Navigate("http://foo.bar");
}
我有一个按钮控件,它接受webBrowser1.Url.OriginalString
并将其设置为textBox -
// On button_Click
string requestResponse = webBrowser1.Url.OriginalString;
requestURLtextBox.Text = requestResponse;
但是,如果在webBrowser1
有足够时间获取OriginalString
文本之前单击该按钮,则会出现错误,因为该值尚不存在。
我尝试添加 -
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Thread.Sleep(1000);
}
在button_Click事件中的上一个代码之前,这进入了一个无限循环。如何在webBrowser完成后检索OriginalString
?
答案 0 :(得分:1)
这里有一些可能适合您的VB简单代码:
If mbBusy Then Exit Function ' form level variable
mbBusy = True
Web.Navigate("http://.....htm")
dtWebWait = Now().AddSeconds(timeoutSeconds)
Do Until Web.ReadyState = WebBrowserReadyState.Complete
Application.DoEvents()
If Now() > dtWebWait Then
MsgBox("navigate timeout - search form")
Exit Function
End If
Threading.Thread.Sleep(250)
Loop
mbBusy = False