Bib*_*ath 17 .net c# browser navigation
好吧,我使用一个简单的webbrowser控件来浏览页面,所以我需要在这样做时更改表单的Text.我正在使用 -
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
this.Text += " - " + webBrowser1.Document.Domain;
}
Run Code Online (Sandbox Code Playgroud)
但是使用断点,我注意到,这个事件发射了两次.我甚至尝试过_Navigated()活动.它也开了两次.得到的标题"Webber - google.co.in - google.co.in"..
我也注意到这个事件在加载msn.com时多次激活..我只是在页面完成加载时才尝试更改表单的文本..
任何补救措施?
Kra*_*ssi 26
您可以在触发事件时检查WebBrowser.ReadyState:
if (browser.ReadyState != WebBrowserReadyState.Complete)
return;
Run Code Online (Sandbox Code Playgroud)
整个文档准备就绪后,ReadyState将设置为Complete.
Kyl*_*ndo 17
每次加载帧时,都会触发该事件.
此外,在您去那里之前,该IsBusy属性将仅True在第一帧未加载时.
void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
return;
//The page is finished loading
}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,原因是,默认情况下,当您添加控件时,它会生成这样的设计器代码。
this.webBrowser1.Url = new System.Uri("", System.UriKind.Relative);
Run Code Online (Sandbox Code Playgroud)
如果您在调用后更改 url
InitializeComponent();
WebBrowser.Navigate("NewUrl.com");
Run Code Online (Sandbox Code Playgroud)
它将加载两个不同的页面:关于:空白和NewUrl.com
只需删除设计器代码……您就会停止“双重”事件。
| 归档时间: |
|
| 查看次数: |
26452 次 |
| 最近记录: |