C#: Как я получаю заголовок документа от элемента WebBrowser?

У меня есть проблемы, пытающиеся получить заголовок документа от WebBrowser в C#. Это хорошо работает в VB.NET, но это не даст мне свойств в C#.

Когда я ввожу в MyBrowser. Документ., единственные опции, которые я получаю, являются 4 методами: Равняется, GetHashCode, GetType и ToString - никакие свойства.

Я думаю, что это - потому что я должен присвоить документ новому экземпляру сначала, но я не могу найти класс HTMLDocument, который существует в VB.NET.

В основном то, что я желаю сделать, возвратить Документ. Заголовок каждый раз WebBrowser загружает/перезагружает страницу.

Кто-то может помочь? Это будет очень цениться!

Вот код, который я имею в данный момент...

private void Link_Click(object sender, RoutedEventArgs e)
{
    WebBrowser tempBrowser = new WebBrowser();
    tempBrowser.HorizontalAlignment = HorizontalAlignment.Left;
    tempBrowser.Margin = new Thickness(-4, -4, -4, -4);
    tempBrowser.Name = "MyBrowser";
    tempBrowser.VerticalAlignment = VerticalAlignment.Top;
    tempBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(tempBrowser_LoadCompleted);

    tempTab.Content = tempBrowser; // this is just a TabControl that contains the WebBrowser

    Uri tempURI = new Uri("http://www.google.com");
    tempBrowser.Navigate(tempURI);
}

private void tempBrowser_LoadCompleted(object sender, EventArgs e)
{
    if (sender is WebBrowser)
    {
        MessageBox.Show("Test");
        currentBrowser = (WebBrowser)sender;
        System.Windows.Forms.HtmlDocument tempDoc = (System.Windows.Forms.HtmlDocument)currentBrowser.Document;
        MessageBox.Show(tempDoc.Title);
    }
}

Этот код не дает мне ошибок, но я никогда не вижу второй MessageBox. Я действительно вижу первый, хотя ("Тестовое" сообщение), таким образом, программа добирается до того блока кода.

5
задан Randy Cleary 13 July 2010 в 18:14
поделиться

2 ответа

Вы не используете элемент управления Windows Forms WebBrowser. Думаю, у вас есть COM-оболочка для ieframe.dll, ее имя AxWebBrowser. Убедитесь в этом, открыв узел "Ссылки" в окне "Обозреватель решений". Если вы видите AxSHDocVw, значит, вы ошиблись элементом управления. Это довольно недружелюбно, просто дает непрозрачный указатель на интерфейс для свойства Document. Вы действительно получите только члены класса объекта по умолчанию.

Посмотрите в ящике для инструментов. Выберите WebBrowser вместо Microsoft Web Browser.

2
ответ дан 14 December 2019 в 13:25
поделиться
string title = ((HTMLDocument)MyBrowser.Document).Title

или

HTMLDocument Doc =  (HTMLDocument)MyBrowser.Document.Title ;
string title = doc.Title;
0
ответ дан 14 December 2019 в 13:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: