【问题标题】:Display URL address in Textbox在文本框中显示 URL 地址
【发布时间】:2011-01-29 12:12:21
【问题描述】:

在 WinForms 应用程序中创建一个简单的网络浏览器。在我的应用程序中,我有以下组件:

  • 一个文本框
  • 一个网络浏览器

需求说明:

  • 从 WebBrowser 单击其中一个网络链接时,URL 地址应显示在文本框中

目标:

  • 在地址字段中显示 URL 地址。

问题:

  • 不知道我应该使用哪个事件?我曾尝试在组件 webbrowser 中使用事件 DocumentCompletedVisibleChanged,但它不起作用。
  • 如何将组件 WebBrowser 的 URL 地址显示到文本框?

【问题讨论】:

标签: c# .net winforms webbrowser-control


【解决方案1】:
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();
}

【讨论】:

  • 如果文档不包含标题,或者上一个文档和新文档的标题相同怎么办?
  • @Nate:你的意思是DocumentTitleChanged不会出现在这种情况下?我敢肯定,它会的。
【解决方案2】:

您应该使用Navigated 事件。当事件发生时,您可以将文本框的 Text 属性设置为 WebBrowserUrl 属性的值,如下所示:

addressBarTextBox.Text = webBrowser.Url.AbsoluteUri;

【讨论】:

  • 我认为Navigating 事件更好,因为在这种情况下,地址文本框在导航发生之前不会“挂起”
【解决方案3】:

我建议使用WebBrowser.Navigated 事件。它会在文档开始加载时触发。

例子:

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    textBox1.Text = webBrowser.Url.AbsoluteUri;
}

【讨论】:

  • 哎呀,我在想 webBrowser.Url。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 2015-04-23
  • 2016-07-28
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多