在WinForms应用程序中创建简单的Web浏览器。在我的应用程序有以下组成部分:在文本框中显示URL地址
- 一个文本框
- 一个WebBrowser
要求规格:
- 当点击来自web浏览器的网页链接之一,URL地址应显示在文本框中
目标:
- 在地址栏中显示URL地址。
问题:
- 不知道我应该使用哪一个事件?我曾尝试在组件webbrowser中使用事件
DocumentCompleted
和VisibleChanged
,但它不起作用。 - 我应该如何显示URL地址从组件WebBrowser到文本框?
在WinForms应用程序中创建简单的Web浏览器。在我的应用程序有以下组成部分:在文本框中显示URL地址
要求规格:
目标:
问题:
DocumentCompleted
和VisibleChanged
,但它不起作用。this.Browser.DocumentTitleChanged += Browser_DocumentTitleChanged;
private void Browser_DocumentTitleChanged(object sender, EventArgs e)
{
Uri url = ((WebBrowser)sender).Document.Url;
txtUrl.Text = url.ToString();
}
或
this.Browser.Navigating += Browser_Navigating;
private void Browser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
Uri url = e.Url;
txtUrl.Text = url.ToString();
}
如果文档不包含标题,或者以前的文档和新文档的标题相同,该怎么办? – user 2011-01-29 12:26:47
您应该使用Navigated
事件。当事件发生时,您可以将您的文本框的Text
属性设置为WebBrowser
的Url
属性的值,就像这样:
addressBarTextBox.Text = webBrowser.Url.AbsoluteUri;
我认为`Navigating`事件,因为在这种情况下地址的文本框是更好将不会“挂起”,直到导航 – abatishchev 2011-01-29 12:25:54
@abatishchev,好点。 – 2011-01-29 12:27:56
我建议使用WebBrowser.Navigated事件。只要文档开始加载就会触发它。
实施例:
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
textBox1.Text = webBrowser.Url.AbsoluteUri;
}
见[dotBrowser项目](http://sourceforge.net/projects/dotbrowser/develop)如实施例 – abatishchev 2011-01-29 12:18:25