Visual Basic .NET на уроках информатики

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

Разбить на страницы
Показывать лекцию целиком

В этой лекции вы узнаете, как:

  • исследовать объектную модель Microsoft Internet Explorer;
  • просматривать в вашем приложении документы HTML;
  • использовать события Internet Explorer.
  • В лекции 3 для отображения в форме веб-адреса вы использовали элемент управления LinkLabel. В некоторых случаях для того, чтобы открывать интернет-браузер, вы использовали в коде метод System.Diagnostics.Process.Start. В части 6 вы снова обратитесь к соединению ваших программ на Microsoft Visual Basic .NET с интернетом. Вы научитесь использовать в программе методы, свойства и события приложения Internet Explorer, а также узнаете, как создавать на Visual Basic .NET веб-приложения с помощью элементов управления с закладки Web Forms окна Области элементов. Многие методики веб-программирования требуют от вас навыков, которые вы получили в предыдущих частях книги.

    В этой лекции вы узнаете, как с помощью объекта отображать в ваших приложениях HTML-документы. Internet Explorer является программируемой компонентой со свойствами, методами и событиями, которые доступны на всех компьютерах, где установлена его копия. По мере исследования объектной модели Internet Explorer вы узнаете, как добавлять объект Internet Explorer в ваши проекты на Visual Basic и как использовать его методы, свойства и события для отображения HTML-документов. Преимущество непосредственного использования Internet Explorer состоит в том, что вы можете отображать сложные HTML-документы и веб-страницы без самостоятельного написания браузера.

    Что нового в Visual Basic .NET?

  • С первым выпуском Visual Basic 6 поставлялась версия Internet Explorer номер 4. В состав Visual Basic .NET 2002 и 2003 была включена версия Internet Explorer 6. Обе версии в целом совместимы, так что если вы писали программы на Visual Basic 6, которые использовали предыдущие версии Internet Explorer, у вас не должно возникнуть больших проблем при компиляции их под Visual Basic .NET и новые версии Internet Explorer.
  • Чтобы использовать в программе на Visual Basic .NET функции Internet Explorer, необходимо добавить с помощью команды Add Reference (Добавить ссылку) из меню Project (Проект) ссылку на библиотеку объектов Microsoft Internet Controls.
  • Начало работы с объектом Internet Explorer

    Microsoft Internet Explorer является приложением браузера общего назначения, которое отображает документы HTML, расположенные в интернете или на вашем жестком диске. Microsoft разработала Internet Explorer таким образом, что его можно использовать, как отдельное приложение (запускаемое через меню Пуск), или как объектную компоненту в вашей собственной программе. Соответственно, Internet Explorer предоставляет свои функции в виде коллекции свойств, методов и событий. Все они составляют понятную объектную модель, которую можно использовать в ваших программах. Вы можете исследовать объектную модель Internet Explorer с помощью Object Browser (Обозревателя объектов) из Microsoft Visual Studio.

    Объект Internet Explorer не является элементом управления, включенным в окно Области элементов среды Microsoft Visual Basic .NET. Он является библиотекой COM, которая есть на всех системах, где установлена копия Internet Explorer (другими словами, на всех системах, на которых Internet Explorer прописан в системном реестре). Так как Microsoft использует Internet Explorer для отображения файлов справочной системы многих своих приложений, вы обнаружите библиотеку объектов Internet Explorer на большинстве систем, на которых установлено программное обеспечение Microsoft.

    Важно! Версия Internet Explorer, описанная в этой лекции, имеет номер 6 (то есть это версия, поставляющаяся с Visual Basic .NET 2002 и 2003). Основные свойства, методы и события объекта Internet Explorer не имеют значительных изменений от версии к версии. Однако перед началом работы с этой лекцией проверьте, какую версию Internet Explorer вы используете. (Используйте команду About (О программе) из меню Help (Справка) Internet Explorer.) Если у вас установлена версия, отличная от версии 6, используйте Object Browser (Обозреватель объектов) для проверки, содержит ли она свойства, методы и события, которые вы будете использовать. Как и другие библиотеки объектов из приложений Microsoft Office, объектная модель Internet Explorer время от времени обновляется. Без сомнения будущие версии будут несколько отличаться (и будут иметь больше возможностей).

    Добавление в приложение ссылки на элементы управления для интернета

    Первым шагом при использовании объекта Internet Explorer является добавление в ваше приложение COM-ссылки на библиотеку объектов. Вы делаете это с помощью команды Add Reference (Добавить ссылку) из меню Project (Проект) среды Visual Basic, как показано в следующем упражнении. Попрактикуйтесь сейчас в добавлении ссылки, или просто запомните эти шаги для дальнейшего использования. (Программа, которую я использую в этой лекции, уже включает эту ссылку, но вы должны научиться сами добавлять такие ссылки, если вы хотите изучать объектную модель более подробно.)

    Включение объекта Internet Explorer в ваш проект

  • Запустите Visual Studio, и создайте в папке c:\vbnet03sbs\Гл.21 новый проект с именем My Explorer Objects. Будет создан новый проект, и в Конструкторе Windows Forms появится пустая форма.
  • В меню Project (Проект) щелкните на команде Add Reference (Добавить ссылку).
  • Щелкните на закладке COM диалогового окна Add Reference (Добавить ссылку).
  • Прокрутите окно до ссылки Microsoft Internet Controls, щелкните в диалоговом окне на Microsoft Internet Controls, а затем на Select (Выбрать). Ваше диалоговое окно будет выглядеть так, как показано на рисунке ниже.

  • Чтобы добавить ссылку в ваш проект, щелкните на OK. Если вы увидели диалоговое окно первичной сборки взаимодействия, щелкните на Yes (Да) и позвольте Visual Studio автоматически создать для вас требуемую оболочку классов. Visual Basic добавит в ваш проект библиотеку объекта Internet Explorer, а в Solution Explorer (Обозреватель решений) будут добавлены типы, связанные с этой оболочкой.
  • Исследование объектной модели Internet Explorer

    Прежде, чем вы начнете использовать объект Internet Explorer в вашей программе, потратьте немного времени и изучите с помощью Object Browser (Обозревателя объектов) из Visual Studio его свойства, методы и события. Объект Internet Explorer хранится в классе с именем InternetExplorer, который является членом библиотеки SHDocVw - ссылки на Microsoft Internet Controls, которую вы только что добавили в ваш проект. В классе InternetExplorer есть свойства, методы и события, которые вы можете использовать для отображения документов HTML в ваших программах. Object Browser (Обозреватель объектов) - это самый полезный источник информации об объектной библиотеке, которая не поставляется в составе Visual Basic. Библиотека объекта Internet Explorer - хороший пример такого случая.

    Использование Object Browser (Обозреватель объектов)

  • В меню View (Вид) щелкните на команде Object Browser (Обозреватель объектов). (Быстрая клавиша для отображения Обозревателя объектов - (F2).) Object Browser (Обозреватель объектов) содержит список ссылок и компонент в виде древовидной иерархии. Иерархия объектов показана на левой панели Object Browser (Обозревателя объектов), а отдельные члены показаны на правой панели. В нижней части Object Browser (Обозревателя объектов) находится панель, которая содержит информацию о синтаксисе выбранного объекта, когда она доступна.
  • Щелкните на знаке "плюс" (+) рядом с библиотекой объектов Interop.SHDocVw, а затем на знаке "плюс" рядом с SHDocVw. Панель Objects заполнится списком объектов, предоставляемых библиотекой Microsoft Internet Controls, показанным ниже.

  • Прокрутите алфавитный список объектов вниз, а затем щелкните на первом объекте с именем InternetExplorer. На панели Members появится список методов и свойств, ассоциированных с объектом Internet Explorer.
  • Прокрутите вниз панель Members, а затем щелкните на методе Navigate. Ваш экран будет выглядеть примерно так, как показано на рисунке вверху следующей страницы.

    Метод Navigate открывает URL, указанный в списке параметров, который может быть либо адресом в интернете, либо документом HTML, расположенным где-то на вашем компьютере. Аргумент Flags указывает, следует ли добавлять этот URL в список истории Internet Explorer или в дисковый кэш. Аргументы TargetFrameName, PostData и Headers описывают, как должен открываться и определяться документ HTML в окне браузера. (Все эти аргументы необязательные.) Хотя это все может показаться сложным, метод Navigate очень прост в использовании. Во многих случаях это все, что требуется для просмотра документа HTML в вашем приложении.

  • Прокрутите панель Members и щелкните на свойстве LocationURL. Свойство LocationURL содержит путь документа HTML, который в настоящий момент открыт в браузере Internet Explorer. Если вы хотите запоминать каждый веб-сайт, посещенный пользователем в сессии работы, вы можете при каждом успешном соединении с веб-страницей копировать строку из свойства LocationURL в текстовое поле или комбинированный список.
  • Посмотрите в Object Browser (Обозревателе объектов) также на другие свойства и методы, которые кажутся вам интересными.
  • Когда закончите изучать эту объектную модель, щелкните на кнопке Закрыть формы, чтобы закрыть Object Browser (Обозреватель объектов).
  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов. Вы закончили работу с проектом My Explorer Objects.
  • Отображение документов HTML

    Отображение HTML-документов с помощью объекта Internet Explorer требует от приложения на Visual Basic всего нескольких строк кода программы. Во-первых, вы объявляете в вашем приложении переменную, которая представляет тип Internet Explorer. Для создания экземпляра объекта Internet Explorer вы используете ключевое слово New. Затем вы отображаете приложение Internet Explorer, установив свойство Visible этого объекта на значение True. Затем вы с помощью метода Navigate загружаете документ HTML в Internet Explorer, указав в качестве аргумента этого метода требуемый URL или локальный путь. Вот как выглядит этот процесс в коде программы:

    Dim Explorer As SHDocVw.InternetExplorer
    Explorer = New SHDocVw.InternetExplorer()
    Explorer.Visible = True
    Explorer.Navigate("http://www.microsoft.com")

    В этом примере я создал переменную с именем Explorer, которая представляет класс InternetExplorer из библиотеки объектов shdocvw.dll. Если вы хотите использовать эту переменную во всех процедурах событий вашей формы, то можете объявить ее как открытую переменную с помощью ключевого слова Public в стандартном модуле или в области общих объявлений вашей формы.

    Чтобы увидеть, как работает в программе объект Internet Explorer, запустите демонстрацию Show HTML, которую я создал для этой лекции. Для представления списка предпочитаемых пользователем веб-сайтов Show HTML использует комбинированный список, а для отображения выбранного пользователем документа HTML она использует метод Navigate объекта Internet Explorer.

    Запуск программы Show HTML

  • Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл).
  • Откройте проект Show HTML, находящийся в папке c:\vbnet03sbs\Гл.21\show html.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать), расположенной на стандартной панели инструментов. Ваша форма будет выглядеть аналогично следующей иллюстрации.

  • Щелкните на стрелке комбинированного списка формы, чтобы отобразить список предпочтительных веб-сайтов для программистов на Visual Basic. Вы увидите следующий список URL.

    В вашем браузере комбинированный список может быть очень удобным элементом управления для представления URL пользователю. В моих веб-приложениях я обычно пытаюсь предоставлять на выбор пользователей четыре или пять URL, с которых они могут начинать работу со своими веб-приложениями. При этом они могут добавить свои собственные предпочтения, когда посетят другие сайты. Адреса в интернете, которые я включил в этот список, соединят вас с сайтами, которые могут быть интересны программистам на Visual Basic. Вы можете свободно использовать их, но заметьте, что через год или два один или два URL могут оказаться неверными. (Эти вещи очень быстро меняются.) В следующей таблице приведен список веб-сайтов, которые я представил в программе:

    Адрес в интернете Описание
    http://www.microsoft.com Домашняя страница Microsoft Corporation
    http://www.microsoft.com/mspress Домашняя страница Microsoft Press (со ссылками на книги по Visual Basic)
    http://msdn.microsoft.com/vbasic Домашняя страница Microsoft Visual Basic Programming
    http://www.devx.com Общие ресурсы по программированию компьютеров и Visual Studio .NET
  • Щелкните в комбинированном списке на домашней странице Microsoft Visual Basic Programming (http://msdn.microsoft.com/vbasic).
  • Щелкните на кнопке Показать HTML. Visual Basic откроет Internet Explorer и загрузит в браузер URL сайта Microsoft Visual Basic. Если вы не подключены к сети, Internet Explorer запросит у вас с помощью диалогового окна логин и пароль интернет-провайдера (ISP - Internet service provider) и соединит вас с интернетом. (Если вы подключаетесь к интернету через корпоративную сеть, у вас будет другой процесс регистрации.) Вы увидите домашнюю страницу Microsoft Visual Basic. (Ваш HTML-документ будет содержать более свежую информацию.)

  • Максимизируйте окно Internet Explorer, если они не развернуто на весь экран, а затем щелкните на одной или двух заинтересовавших вас ссылках. Домашняя страница Microsoft Visual Basic Programming - великолепный ресурс для получения самых свежих новостей об инструментах программирования, советах, конференциях, книгах и другой информации, посвященной Visual Basic.
  • После того, как вы закончите просматривать эту страницу, закройте окно Internet Explorer. Если у вас спросят, хотите ли вы отключиться от интернета, щелкните на No (Нет), чтобы сохранить соединение.
  • 9. Снова отобразите форму Просмотр HTML. Программа Show HTML все еще работает, хотя к этому моменту она может быть скрыта несколькими другими открытыми приложениями.
  • Поместите курсор в комбинированный список формы Просмотр HTML, удалите текущий URL и введите какой-нибудь другой URL. Затем щелкните на Показать HTML, чтобы открыть его. В дополнение к введенным URL вы также можете вводить в комбинированном списке пути файлов для отображения HTML-документов, хранящихся на вашем жестком диске.
  • После того, как вы отобразили три или четыре HTML-документа, щелкните на кнопке Закрыть в строке заголовка программы Show HTML, а затем закройте все окна Internet Explorer.
  • Теперь взгляните на код программы приложения Show HTML, который использует объект Internet Explorer.

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

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

    Public Explorer As SHDocVw.InternetExplorer

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

  • Отобразите в Редакторе кода процедуру события 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, которое управляет соединением с интернетом (если необходимо) и позволяет пользователю видеть выбранный веб-сайт и щелкать на любых имеющихся на странице гиперссылках.

  • Отобразите в Редакторе кода процедуру события 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

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

    Public WithEvents Explorer As SHDocVw.InternetExplorer
  • Переместите ваш курсор на следующую строку, чтобы Visual Studio могла распознать изменение WithEvents.
  • Щелкните в Редакторе кода на стрелке раскрывающегося списка Class Name (Имя класса), а затем щелкните на объекте Explorer.
  • Щелкните в Редакторе кода на стрелке раскрывающегося списка Method Name (Имя метода), а затем на событии NavigateComplete2. В Редакторе кода появится процедура события Explorer_NavigateComplete2 и ее параметры.
  • Введите в процедуре события 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 в файл или в базу данных.

  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать) стандартной панели инструментов.
  • Щелкните на одном из веб-сайтов в комбинированном списке, а затем на кнопке Показать HTML.
  • После установления соединения щелкните на нескольких гиперссылках, имеющихся на этом сайте, чтобы перейти к другим URL.
  • Щелкните на программе Show HTML на панели задач, а затем снова щелкните на комбинированном списке. Новые посещенные вами сайты будут добавлены в комбинированный список Show HTML, как показано на рисунке вверху следующей страницы. Поэкспериментируйте с событием NavigateComplete2, посетив еще несколько веб-сайтов и посмотрев, как они добавляются в комбинированный список.
  • Когда закончите, закройте окна 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
    Страницы:

    В этой лекции вы узнаете, как:

  • исследовать объектную модель Microsoft Internet Explorer;
  • просматривать в вашем приложении документы HTML;
  • использовать события Internet Explorer.
  • В лекции 3 для отображения в форме веб-адреса вы использовали элемент управления LinkLabel. В некоторых случаях для того, чтобы открывать интернет-браузер, вы использовали в коде метод System.Diagnostics.Process.Start. В части 6 вы снова обратитесь к соединению ваших программ на Microsoft Visual Basic .NET с интернетом. Вы научитесь использовать в программе методы, свойства и события приложения Internet Explorer, а также узнаете, как создавать на Visual Basic .NET веб-приложения с помощью элементов управления с закладки Web Forms окна Области элементов. Многие методики веб-программирования требуют от вас навыков, которые вы получили в предыдущих частях книги.

    В этой лекции вы узнаете, как с помощью объекта отображать в ваших приложениях HTML-документы. Internet Explorer является программируемой компонентой со свойствами, методами и событиями, которые доступны на всех компьютерах, где установлена его копия. По мере исследования объектной модели Internet Explorer вы узнаете, как добавлять объект Internet Explorer в ваши проекты на Visual Basic и как использовать его методы, свойства и события для отображения HTML-документов. Преимущество непосредственного использования Internet Explorer состоит в том, что вы можете отображать сложные HTML-документы и веб-страницы без самостоятельного написания браузера.

    Что нового в Visual Basic .NET?

  • С первым выпуском Visual Basic 6 поставлялась версия Internet Explorer номер 4. В состав Visual Basic .NET 2002 и 2003 была включена версия Internet Explorer 6. Обе версии в целом совместимы, так что если вы писали программы на Visual Basic 6, которые использовали предыдущие версии Internet Explorer, у вас не должно возникнуть больших проблем при компиляции их под Visual Basic .NET и новые версии Internet Explorer.
  • Чтобы использовать в программе на Visual Basic .NET функции Internet Explorer, необходимо добавить с помощью команды Add Reference (Добавить ссылку) из меню Project (Проект) ссылку на библиотеку объектов Microsoft Internet Controls.
  • Начало работы с объектом Internet Explorer

    Microsoft Internet Explorer является приложением браузера общего назначения, которое отображает документы HTML, расположенные в интернете или на вашем жестком диске. Microsoft разработала Internet Explorer таким образом, что его можно использовать, как отдельное приложение (запускаемое через меню Пуск), или как объектную компоненту в вашей собственной программе. Соответственно, Internet Explorer предоставляет свои функции в виде коллекции свойств, методов и событий. Все они составляют понятную объектную модель, которую можно использовать в ваших программах. Вы можете исследовать объектную модель Internet Explorer с помощью Object Browser (Обозревателя объектов) из Microsoft Visual Studio.

    Объект Internet Explorer не является элементом управления, включенным в окно Области элементов среды Microsoft Visual Basic .NET. Он является библиотекой COM, которая есть на всех системах, где установлена копия Internet Explorer (другими словами, на всех системах, на которых Internet Explorer прописан в системном реестре). Так как Microsoft использует Internet Explorer для отображения файлов справочной системы многих своих приложений, вы обнаружите библиотеку объектов Internet Explorer на большинстве систем, на которых установлено программное обеспечение Microsoft.

    Важно! Версия Internet Explorer, описанная в этой лекции, имеет номер 6 (то есть это версия, поставляющаяся с Visual Basic .NET 2002 и 2003). Основные свойства, методы и события объекта Internet Explorer не имеют значительных изменений от версии к версии. Однако перед началом работы с этой лекцией проверьте, какую версию Internet Explorer вы используете. (Используйте команду About (О программе) из меню Help (Справка) Internet Explorer.) Если у вас установлена версия, отличная от версии 6, используйте Object Browser (Обозреватель объектов) для проверки, содержит ли она свойства, методы и события, которые вы будете использовать. Как и другие библиотеки объектов из приложений Microsoft Office, объектная модель Internet Explorer время от времени обновляется. Без сомнения будущие версии будут несколько отличаться (и будут иметь больше возможностей).

    Добавление в приложение ссылки на элементы управления для интернета

    Первым шагом при использовании объекта Internet Explorer является добавление в ваше приложение COM-ссылки на библиотеку объектов. Вы делаете это с помощью команды Add Reference (Добавить ссылку) из меню Project (Проект) среды Visual Basic, как показано в следующем упражнении. Попрактикуйтесь сейчас в добавлении ссылки, или просто запомните эти шаги для дальнейшего использования. (Программа, которую я использую в этой лекции, уже включает эту ссылку, но вы должны научиться сами добавлять такие ссылки, если вы хотите изучать объектную модель более подробно.)

    Включение объекта Internet Explorer в ваш проект

  • Запустите Visual Studio, и создайте в папке c:\vbnet03sbs\Гл.21 новый проект с именем My Explorer Objects. Будет создан новый проект, и в Конструкторе Windows Forms появится пустая форма.
  • В меню Project (Проект) щелкните на команде Add Reference (Добавить ссылку).
  • Щелкните на закладке COM диалогового окна Add Reference (Добавить ссылку).
  • Прокрутите окно до ссылки Microsoft Internet Controls, щелкните в диалоговом окне на Microsoft Internet Controls, а затем на Select (Выбрать). Ваше диалоговое окно будет выглядеть так, как показано на рисунке ниже.

  • Чтобы добавить ссылку в ваш проект, щелкните на OK. Если вы увидели диалоговое окно первичной сборки взаимодействия, щелкните на Yes (Да) и позвольте Visual Studio автоматически создать для вас требуемую оболочку классов. Visual Basic добавит в ваш проект библиотеку объекта Internet Explorer, а в Solution Explorer (Обозреватель решений) будут добавлены типы, связанные с этой оболочкой.
  • Исследование объектной модели Internet Explorer

    Прежде, чем вы начнете использовать объект Internet Explorer в вашей программе, потратьте немного времени и изучите с помощью Object Browser (Обозревателя объектов) из Visual Studio его свойства, методы и события. Объект Internet Explorer хранится в классе с именем InternetExplorer, который является членом библиотеки SHDocVw - ссылки на Microsoft Internet Controls, которую вы только что добавили в ваш проект. В классе InternetExplorer есть свойства, методы и события, которые вы можете использовать для отображения документов HTML в ваших программах. Object Browser (Обозреватель объектов) - это самый полезный источник информации об объектной библиотеке, которая не поставляется в составе Visual Basic. Библиотека объекта Internet Explorer - хороший пример такого случая.

    Использование Object Browser (Обозреватель объектов)

  • В меню View (Вид) щелкните на команде Object Browser (Обозреватель объектов). (Быстрая клавиша для отображения Обозревателя объектов - (F2).) Object Browser (Обозреватель объектов) содержит список ссылок и компонент в виде древовидной иерархии. Иерархия объектов показана на левой панели Object Browser (Обозревателя объектов), а отдельные члены показаны на правой панели. В нижней части Object Browser (Обозревателя объектов) находится панель, которая содержит информацию о синтаксисе выбранного объекта, когда она доступна.
  • Щелкните на знаке "плюс" (+) рядом с библиотекой объектов Interop.SHDocVw, а затем на знаке "плюс" рядом с SHDocVw. Панель Objects заполнится списком объектов, предоставляемых библиотекой Microsoft Internet Controls, показанным ниже.

  • Прокрутите алфавитный список объектов вниз, а затем щелкните на первом объекте с именем InternetExplorer. На панели Members появится список методов и свойств, ассоциированных с объектом Internet Explorer.
  • Прокрутите вниз панель Members, а затем щелкните на методе Navigate. Ваш экран будет выглядеть примерно так, как показано на рисунке вверху следующей страницы.

    Метод Navigate открывает URL, указанный в списке параметров, который может быть либо адресом в интернете, либо документом HTML, расположенным где-то на вашем компьютере. Аргумент Flags указывает, следует ли добавлять этот URL в список истории Internet Explorer или в дисковый кэш. Аргументы TargetFrameName, PostData и Headers описывают, как должен открываться и определяться документ HTML в окне браузера. (Все эти аргументы необязательные.) Хотя это все может показаться сложным, метод Navigate очень прост в использовании. Во многих случаях это все, что требуется для просмотра документа HTML в вашем приложении.

  • Прокрутите панель Members и щелкните на свойстве LocationURL. Свойство LocationURL содержит путь документа HTML, который в настоящий момент открыт в браузере Internet Explorer. Если вы хотите запоминать каждый веб-сайт, посещенный пользователем в сессии работы, вы можете при каждом успешном соединении с веб-страницей копировать строку из свойства LocationURL в текстовое поле или комбинированный список.
  • Посмотрите в Object Browser (Обозревателе объектов) также на другие свойства и методы, которые кажутся вам интересными.
  • Когда закончите изучать эту объектную модель, щелкните на кнопке Закрыть формы, чтобы закрыть Object Browser (Обозреватель объектов).
  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов. Вы закончили работу с проектом My Explorer Objects.
  • Отображение документов HTML

    Отображение HTML-документов с помощью объекта Internet Explorer требует от приложения на Visual Basic всего нескольких строк кода программы. Во-первых, вы объявляете в вашем приложении переменную, которая представляет тип Internet Explorer. Для создания экземпляра объекта Internet Explorer вы используете ключевое слово New. Затем вы отображаете приложение Internet Explorer, установив свойство Visible этого объекта на значение True. Затем вы с помощью метода Navigate загружаете документ HTML в Internet Explorer, указав в качестве аргумента этого метода требуемый URL или локальный путь. Вот как выглядит этот процесс в коде программы:

    Dim Explorer As SHDocVw.InternetExplorer
    Explorer = New SHDocVw.InternetExplorer()
    Explorer.Visible = True
    Explorer.Navigate("http://www.microsoft.com")

    В этом примере я создал переменную с именем Explorer, которая представляет класс InternetExplorer из библиотеки объектов shdocvw.dll. Если вы хотите использовать эту переменную во всех процедурах событий вашей формы, то можете объявить ее как открытую переменную с помощью ключевого слова Public в стандартном модуле или в области общих объявлений вашей формы.

    Чтобы увидеть, как работает в программе объект Internet Explorer, запустите демонстрацию Show HTML, которую я создал для этой лекции. Для представления списка предпочитаемых пользователем веб-сайтов Show HTML использует комбинированный список, а для отображения выбранного пользователем документа HTML она использует метод Navigate объекта Internet Explorer.

    Запуск программы Show HTML

  • Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл).
  • Откройте проект Show HTML, находящийся в папке c:\vbnet03sbs\Гл.21\show html.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать), расположенной на стандартной панели инструментов. Ваша форма будет выглядеть аналогично следующей иллюстрации.

  • Щелкните на стрелке комбинированного списка формы, чтобы отобразить список предпочтительных веб-сайтов для программистов на Visual Basic. Вы увидите следующий список URL.

    В вашем браузере комбинированный список может быть очень удобным элементом управления для представления URL пользователю. В моих веб-приложениях я обычно пытаюсь предоставлять на выбор пользователей четыре или пять URL, с которых они могут начинать работу со своими веб-приложениями. При этом они могут добавить свои собственные предпочтения, когда посетят другие сайты. Адреса в интернете, которые я включил в этот список, соединят вас с сайтами, которые могут быть интересны программистам на Visual Basic. Вы можете свободно использовать их, но заметьте, что через год или два один или два URL могут оказаться неверными. (Эти вещи очень быстро меняются.) В следующей таблице приведен список веб-сайтов, которые я представил в программе:

    Адрес в интернете Описание
    http://www.microsoft.com Домашняя страница Microsoft Corporation
    http://www.microsoft.com/mspress Домашняя страница Microsoft Press (со ссылками на книги по Visual Basic)
    http://msdn.microsoft.com/vbasic Домашняя страница Microsoft Visual Basic Programming
    http://www.devx.com Общие ресурсы по программированию компьютеров и Visual Studio .NET
  • Щелкните в комбинированном списке на домашней странице Microsoft Visual Basic Programming (http://msdn.microsoft.com/vbasic).
  • Щелкните на кнопке Показать HTML. Visual Basic откроет Internet Explorer и загрузит в браузер URL сайта Microsoft Visual Basic. Если вы не подключены к сети, Internet Explorer запросит у вас с помощью диалогового окна логин и пароль интернет-провайдера (ISP - Internet service provider) и соединит вас с интернетом. (Если вы подключаетесь к интернету через корпоративную сеть, у вас будет другой процесс регистрации.) Вы увидите домашнюю страницу Microsoft Visual Basic. (Ваш HTML-документ будет содержать более свежую информацию.)

  • Максимизируйте окно Internet Explorer, если они не развернуто на весь экран, а затем щелкните на одной или двух заинтересовавших вас ссылках. Домашняя страница Microsoft Visual Basic Programming - великолепный ресурс для получения самых свежих новостей об инструментах программирования, советах, конференциях, книгах и другой информации, посвященной Visual Basic.
  • После того, как вы закончите просматривать эту страницу, закройте окно Internet Explorer. Если у вас спросят, хотите ли вы отключиться от интернета, щелкните на No (Нет), чтобы сохранить соединение.
  • 9. Снова отобразите форму Просмотр HTML. Программа Show HTML все еще работает, хотя к этому моменту она может быть скрыта несколькими другими открытыми приложениями.
  • Поместите курсор в комбинированный список формы Просмотр HTML, удалите текущий URL и введите какой-нибудь другой URL. Затем щелкните на Показать HTML, чтобы открыть его. В дополнение к введенным URL вы также можете вводить в комбинированном списке пути файлов для отображения HTML-документов, хранящихся на вашем жестком диске.
  • После того, как вы отобразили три или четыре HTML-документа, щелкните на кнопке Закрыть в строке заголовка программы Show HTML, а затем закройте все окна Internet Explorer.
  • Теперь взгляните на код программы приложения Show HTML, который использует объект Internet Explorer.

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

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

    Public Explorer As SHDocVw.InternetExplorer

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

  • Отобразите в Редакторе кода процедуру события 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, которое управляет соединением с интернетом (если необходимо) и позволяет пользователю видеть выбранный веб-сайт и щелкать на любых имеющихся на странице гиперссылках.

  • Отобразите в Редакторе кода процедуру события 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

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

    Public WithEvents Explorer As SHDocVw.InternetExplorer
  • Переместите ваш курсор на следующую строку, чтобы Visual Studio могла распознать изменение WithEvents.
  • Щелкните в Редакторе кода на стрелке раскрывающегося списка Class Name (Имя класса), а затем щелкните на объекте Explorer.
  • Щелкните в Редакторе кода на стрелке раскрывающегося списка Method Name (Имя метода), а затем на событии NavigateComplete2. В Редакторе кода появится процедура события Explorer_NavigateComplete2 и ее параметры.
  • Введите в процедуре события 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 в файл или в базу данных.

  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на панели инструментов.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать) стандартной панели инструментов.
  • Щелкните на одном из веб-сайтов в комбинированном списке, а затем на кнопке Показать HTML.
  • После установления соединения щелкните на нескольких гиперссылках, имеющихся на этом сайте, чтобы перейти к другим URL.
  • Щелкните на программе Show HTML на панели задач, а затем снова щелкните на комбинированном списке. Новые посещенные вами сайты будут добавлены в комбинированный список Show HTML, как показано на рисунке вверху следующей страницы. Поэкспериментируйте с событием NavigateComplete2, посетив еще несколько веб-сайтов и посмотрев, как они добавляются в комбинированный список.
  • Когда закончите, закройте окна 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
    Вернуться к учебному плану