Как использовать объект .net webBrowser - PullRequest
5 голосов
/ 19 апреля 2011

Кто-нибудь знает учебник по использованию объекта System.Windows.Forms.WebBrowser?Посмотрел вокруг, но не могу найти.Пока у меня есть код (очень сложный):

System.Windows.Forms.WebBrowser b = new System.Windows.Forms.WebBrowser();
b.Navigate("http://www.google.co.uk");

, но на самом деле он нигде не перемещается (т.е. null, b.Document и т. Д.)1006 *

Ответы [ 4 ]

5 голосов
/ 19 апреля 2011

Браузеру требуется время для перехода на страницу. Метод Navigate () блокирует , а не до тех пор, пока навигация не будет завершена, что приведет к зависанию интерфейса пользователя. Событие DocumentCompleted наступает, когда оно сделано. Вы должны переместить свой код в обработчик событий для этого события.

Дополнительным требованием является то, что поток, в котором вы создаете WB, является подходящим домом для однопоточных COM-компонентов. Это должен быть STA и прокачать петлю сообщений. Приложение в режиме консоли не отвечает этому требованию, такой поток есть только в проекте Winforms или WPF. Проверьте этот ответ для решения, которое совместимо с программами режима консоли.

0 голосов
/ 16 октября 2013

Если вы просто пытаетесь открыть браузер и перемещаться, я делаю это очень просто, у всех очень сложный ответ ... Я очень плохо знаком с c # (1 неделя), и я просто сделал этот код:

string URL = "http://google.com";
object browser; 
browser = System.Diagnostics.Process.Start("iexplore.exe", URL)

//This opens a new browser and navigates to the site of your URL variable
0 голосов
/ 19 апреля 2011

Перетащите элемент управления веб-браузера в форму и установите для его параметра AllowNavigation значение true.Затем добавьте элемент управления кнопки и в его событии click напишите webBrowser.Navigate ("http://www.google.co.uk") и дождитесь загрузки страницы.

Для быстрого примера вы также можете использовать webBrowser.DocumentText = "<html><title>Test Page</title><body><h1> Test Page </h1></body></html>". Это покажет вамобразец страницы.

0 голосов
/ 19 апреля 2011

Это очень простое управление. Используйте следующий код

    // Navigates to the URL in the address box when 
// the ENTER key is pressed while the ToolStripTextBox has focus.
private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        Navigate(toolStripTextBox1.Text);
    }
}

// Navigates to the URL in the address box when 
// the Go button is clicked.
private void goButton_Click(object sender, EventArgs e)
{
    Navigate(toolStripTextBox1.Text);
}

// Navigates to the given URL if it is valid.
private void Navigate(String address)
{
    if (String.IsNullOrEmpty(address)) return;
    if (address.Equals("about:blank")) return;
    if (!address.StartsWith("http://") &&
        !address.StartsWith("https://"))
    {
        address = "http://" + address;
    }
    try
    {
        webBrowser1.Navigate(new Uri(address));
    }
    catch (System.UriFormatException)
    {
        return;
    }
}

// Updates the URL in TextBoxAddress upon navigation.
private void webBrowser1_Navigated(object sender,
    WebBrowserNavigatedEventArgs e)
{
    toolStripTextBox1.Text = webBrowser1.Url.ToString();
}

Вы также можете использовать этот пример

Расширенный веб-браузер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...