Спонсор: Microsoft
Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3925 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 22:

Отображение документов HTML с помощью Internet Explorer

< Лекция 21 || Лекция 22: 1234 || Лекция 23 >

Изучение кода Internet Explorer в Show HTML

  1. Откройте код Form1 в Редакторе кода и прокрутите его в самый верх, где находятся объявления общих переменных. Вы увидите следующий программный код:

    Public Explorer As SHDocVw.InternetExplorer

    Программа Show HTML начинается с объявления открытой переменной с именем Explorer, которая будет выполнять соединение программы с объектом Internet Explorer. Тип переменной ассоциирован с классом InternetExplorer из библиотеки shdocvw.dll, которая должна быть включена в ваш проект с помощью команды Add Reference (Добавить ссылку) из меню Project (Проект). (В этом проекте я сделал эту ссылку за вас.)

  2. Отобразите в Редакторе кода процедуру события Button1_Click. Вы увидите следующий программный код:

    Private Sub Button1_Click(ByVal sender As System.Object, _
    		ByVal e As System.EventArgs) Handles Button1.Click
    	Explorer = New SHDocVw.InternetExplorer()
    	Explorer.Visible = True
    	Explorer.Navigate(ComboBox1.Text)
    End Sub

    Процедура события Button1_Click запускается, когда пользователь щелкает на кнопке Показать HTML формы и пытается перейти к URL или документу HTML, указанному в комбинированном списке. Процедура события начинается с присвоения открытой переменной Explorer нового объекта Internet Explorer. Затем процедура делает окно Internet Explorer видимым и открывает с помощью метода Navigate в браузере документ, который соответствует выбору пользователя в комбинированном списке (значение, которое в настоящий момент содержится в свойстве Text объекта комбинированного списка). В этот момент приложение Show HTML заканчивает выполнять свою часть процесса навигации, и внимание пользователя переключается на открытое окно Internet Explorer, которое управляет соединением с интернетом (если необходимо) и позволяет пользователю видеть выбранный веб-сайт и щелкать на любых имеющихся на странице гиперссылках.

  3. Отобразите в Редакторе кода процедуру события Form1_Load. Вы увидите следующий программный код:

    Private Sub Form1_Load(ByVal sender As System.Object, _
    	ByVal e As System.EventArgs) Handles MyBase.Load
    	'При запуске добавляем в выпадающий список несколько полезных 'веб-сайтов
    	ComboBox1.Items.Add("http://www.microsoft.com")
    	ComboBox1.Items.Add("http://www.microsoft.com/mspress")
    	ComboBox1.Items.Add("http://msdn.microsoft.com/vbasic")
    	ComboBox1.Items.Add("http://www.devx.com")
    End Sub

    Когда программа Show HTML загружается, пользователю автоматически представляется список из нескольких "предпочтительных" веб-сайтов. Эти URL представлены в комбинированном списке, который я настроил с помощью метода Add при загрузке формы в процедуре события Form1_Load. Вы можете свободно добавлять в этот список ваши любимые URL, используя дополнительные операторы Add - объект комбинированного списка включает полосы прокрутки, когда это необходимо, и может вместить очень много элементов.

Следующий шаг: реакция на события Internet Explorer

В этой лекции вы использовали свойство Visible и метод Navigate для отображения документов HTML в объекте Internet Explorer.

Вы также можете управлять вашими действиями при навигации, реагируя на события, которые возникают в объекте Internet Explorer. У каждого элемента управления Visual Basic есть возможность во время своей работы отслеживать свои действия (события). Эти события могут включать все, начиная с простого перемещения мыши в элементе управления PictureBox (событие MouseMove ) до уведомления, что в элементе управления TextBox была нажата клавиша (событие KeyPress ). Объект Internet Explorer также генерирует события, на которые вы можете программно реагировать с помощью процедур событий. Они включают NavigateComplete2, DownloadBegin, DownloadComplete, TitleChange, DocumentComplete и OnQuit.

Если вы хотите использовать в своей программе события Internet Explorer, необходимо изменить оператор вашего кода программы, который объявляет переменную Internet Explorer. События, генерируемые компонентами COM, не попадают автоматически в список Method Name (Имя метода) в Code Editor (Редакторе кода). Однако можно включить эти события с помощью ключевого слова WithEvents при объявлении вашей переменной. В программе Show HTML, разработанной в этой лекции, вы должны следующим образом отредактировать раздел объявлений переменных:

Public WithEvents Explorer As SHDocVw.InternetExplorer

После того, как вы используете ключевое слово WithEvents, переменная Explorer автоматически появляется в раскрывающемся списке Class Name (Имя класса) окна Редактора кода. Когда вы выбираете объект Explorer, его события появляются в раскрывающемся списке Method Name (Имя метода). Затем можно выбрать каждое из событий, которым вы хотите управлять, и создать для него процедуру события. Вы увидите, как это работает, при рассмотрении измененной версии программы Show HTML.

В следующем упражнении вы напишите процедуру события, которая добавляет URL текущего веб-сайта, открытого в Internet Explorer, в комбинированный список программы Show HTML.

Использование события NavigateComplete2

  1. Если программа Show HTML не открыта, загрузите ее в среде разработки Visual Studio. Программа Show HTML расположена в папке c:\vbnet03sbs\ Гл.21\show html.
  2. Откройте в Редакторе кода раздел объявлений программы (область, расположенную сразу за тэгом "Windows Form Designer generated code" ("Код, автоматически созданный конструктором форм Windows")).
  3. Добавьте к объявлению переменной Internet Explorer после ключевого слова Public ключевое слово WithEvents. Ваше объявление объекта должно выглядеть примерно так:

    Public WithEvents Explorer As SHDocVw.InternetExplorer
  4. Переместите ваш курсор на следующую строку, чтобы Visual Studio могла распознать изменение WithEvents.
  5. Щелкните в Редакторе кода на стрелке раскрывающегося списка Class Name (Имя класса), а затем щелкните на объекте Explorer.
  6. Щелкните в Редакторе кода на стрелке раскрывающегося списка Method Name (Имя метода), а затем на событии NavigateComplete2. В Редакторе кода появится процедура события Explorer_NavigateComplete2 и ее параметры.
  7. Введите в процедуре события Explorer_NavigateComplete2 следующий оператор программы:

    ComboBox1.Items.Add(Explorer.LocationURL)

    Ваша процедура должна выглядеть примерно так:

    Private Sub Explorer_NavigateComplete2(ByVal pDisp As Object, _
    		ByRef URL As Object) Handles Explorer.NavigateComplete2
    	ComboBox1.Items.Add(Explorer.LocationURL)
    End Sub

    Событие NavigateComplete2 возникает, когда объект Internet Explorer успешно загружает в браузер указанный документ - некорректная веб-страница или URL не сгенерируют этого события. В результате наблюдение за событием NavigateComplete2 является удобным способом отслеживания недавно загруженных веб-документов. Если вы используете свойство LocationURL объекта Explorer, то можете создать собственный список истории документов HTML. В этом примере я просто добавляю посещенный URL в комбинированный список в форме, так что вы можете легко посетить этот сайт снова, сделав всего один щелчок мышью. Однако вы также можете сохранять эту информацию, записывая этот URL в файл или в базу данных.

  8. Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов.
  9. Чтобы запустить программу, щелкните на кнопке Start (Начать) стандартной панели инструментов.
  10. Щелкните на одном из веб-сайтов в комбинированном списке, а затем на кнопке Показать HTML.
  11. После установления соединения щелкните на нескольких гиперссылках, имеющихся на этом сайте, чтобы перейти к другим URL.
  12. Щелкните на программе Show HTML на панели задач, а затем снова щелкните на комбинированном списке. Новые посещенные вами сайты будут добавлены в комбинированный список Show HTML, как показано на рисунке вверху следующей страницы. Поэкспериментируйте с событием NavigateComplete2, посетив еще несколько веб-сайтов и посмотрев, как они добавляются в комбинированный список.
  13. Когда закончите, закройте окна Internet Explorer, которые вы открыли. Затем щелкните на кнопке Закрыть в строке заголовка приложения Show HTML.


Вы закончили работать с объектом Internet Explorer в этой лекции. Хорошая работа!

Краткая справка по лекции 21

Чтобы Сделайте следующее
Добавить в программу COM-ссылку на библиотеку объекта Internet Explorer В меню Project (Проект) щелкните на команде Add Reference (Добавить ссылку), на закладке COM, на элементе Microsoft Internet Controls, на кнопке Select (Выбрать), а затем на OK.
Изучить объектную модель Internet Explorer Нажмите клавишу (F2), чтобы открыть Object Browser (Обозреватель объектов), щелкните на знаке "плюс" рядом с объектом Interop.SHDocVw, а затем на знаке "плюс" рядом с SHDocVw. Прокрутите список объектов вниз, а затем щелкните на объекте с именем Internet Explorer. Чтобы получить дополнительную информацию о членах объекта Internet Explorer, щелкните на этих членах на панели Members.
Запустить в вашей программе Internet Explorer

Объявите переменную типа SHDocVw.InternetExplorer, создайте новый экземпляр с помощью ключевого слова New и установите его свойство Visible на значение True. Например:

Dim Explorer As SHDocVw.InternetExplorer
Explorer = New SHDocVw.InternetExplorer
Explorer.Visible = True
Отобразить в объекте Internet Explorer веб-сайт

Используйте метод Navigate. Например:

Explorer.Navigate("http://www.microsoft.com/")
Получить доступ к событиям внешнего объекта (такого, как Internet Explorer)

Объявите ваш объект с помощью ключевого слова WithEvents. Например:

Public WithEvents Explorer As _
SHDocVw.InternetExplorer
< Лекция 21 || Лекция 22: 1234 || Лекция 23 >
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Татьяна Медкова
Татьяна Медкова
Россия, Иркутск