Отображение URL-адреса в текстовом поле - PullRequest
4 голосов
/ 29 января 2011

Создание простого веб-браузера в приложении WinForms. В моем приложении у меня есть следующие компоненты:

  • TextBox
  • Веб-браузер

Спецификация требования:

  • При нажатии на одну из веб-ссылок в веб-браузере URL-адрес должен отображаться в текстовом поле

Цель:

  • Отображение адреса URL в поле адреса.

Проблема:

  • Не знаете, какое событие мне следует использовать? Я пытался использовать события DocumentCompleted и VisibleChanged в компонентном веб-браузере, но это не сработало.
  • Как отобразить адрес URL из компонента WebBrowser в текстовое поле?

Ответы [ 3 ]

4 голосов
/ 29 января 2011
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();
}
1 голос
/ 29 января 2011

Я бы рекомендовал использовать событие WebBrowser.Navigated .Он срабатывает, как только документ начинает загружаться.

Пример:

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    textBox1.Text = webBrowser.Url.AbsoluteUri;
}
1 голос
/ 29 января 2011

Вы должны использовать событие Navigated.Когда событие происходит, вы можете установить для свойства Text вашего текстового поля значение WebBrowser s Url, например:

addressBarTextBox.Text = webBrowser.Url.AbsoluteUri;
...