У меня есть проблемы, пытающиеся получить заголовок документа от 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. Я действительно вижу первый, хотя ("Тестовое" сообщение), таким образом, программа добирается до того блока кода.
Вы не используете элемент управления Windows Forms WebBrowser. Думаю, у вас есть COM-оболочка для ieframe.dll, ее имя AxWebBrowser. Убедитесь в этом, открыв узел "Ссылки" в окне "Обозреватель решений". Если вы видите AxSHDocVw, значит, вы ошиблись элементом управления. Это довольно недружелюбно, просто дает непрозрачный указатель на интерфейс для свойства Document. Вы действительно получите только члены класса объекта по умолчанию.
Посмотрите в ящике для инструментов. Выберите WebBrowser вместо Microsoft Web Browser.
string title = ((HTMLDocument)MyBrowser.Document).Title
или
HTMLDocument Doc = (HTMLDocument)MyBrowser.Document.Title ;
string title = doc.Title;