Шаг 153.
Microsoft Visual C++ 2010. Язык С/С++.
Компоненты Windows Forms. Компонент WebBrowser

    На этом шаге мы рассмотрим использование этого компонента.

    Компонент находится в списке All Windows Forms (Все формы Windows Forms) палитры компонентов.

    Вид компонента в форме показан на рисунке 1.


Рис.1. Вид WebBrowser'a в форме

    Этот компонент позволяет выводить Web-страницы прямо в вашем приложении. Его можно использовать вместо Internet Explorer (у него имеется ряд свойств, методов и событий, которые позволяют выполнять функции Internet Explorer).

    Например, можно применить опцию Navigated, чтобы пользоваться списком адресов, можно использовать опции GoBack (дает возможность перейти к предыдущей Web-странице), GoForward (дает возможность перейти к последующей Web-странице), Stop (приостанавливает текущую навигацию и связанные с ней звуки и анимацию) и Refresh (перезагружает текущую Web-страницу) для создания навигационных кнопок на линейке инструментов.

    Можго обработать событие Navigated для обновления линейки адресов значением свойства uri (здесь задается или сюда записывается интернет-адрес текущей Web-страницы), можно обработать заголовочную линейку значением свойства DocumentTitle (дает заголовок текущей Web-страницы).

    Если вы хотите сгенерировать свою собственную страницу внутри приложения, то должны установить свойство DocumentText (через него можно ввести или прочитать HTML-текст текущей Web-страницы). Если вы знакомы с моделью DOM (HTML Document Object Model), то также можете манипулировать содержимым текущей Web-страницы, используя свойство Document. С помощью этого свойства вы можете сохранять и модифицировать документ непосредственно в памяти, минуя работу с файлами.

    Теперь мы готовы к совместному применению компонентов ListView и WebBrowser, чтобы создать свой справочник интернет-адресов. Пример такого справочника в режиме дизайна показан на рисунке 2.


Рис.2. Вид интернет-справочника в режиме дизайна

    Текст приложения представлен ниже (представлены только обработчики событий).

private: System::Void listView1_ItemActivate(System::Object^  sender, 
     System::EventArgs^  e) {
	 ListView::SelectedListViewItemCollection^ breakfast = 
		 this->listView1->SelectedItems; 
	 System::Collections::IEnumerator^ myEnum = breakfast->GetEnumerator();
	 while ( myEnum->MoveNext() ) // надо запустить перечисление, 
	                              // т.к. в выборке м.б. много элементов
	 {
		 ListViewItem^ it = safe_cast<ListViewItem^>(myEnum->Current);
		 String^ s;
		 s=it->Text; 
		 this->webBrowser1->Navigate(s);
	 }
 }

// Обработка нажатия клавиши в поле ввода URL-адреса
private: System::Void textBox1_KeyDown(System::Object^  sender, 
     System::Windows::Forms::KeyEventArgs^  e) {
	 //завершение ввода по нажатию клавиши <Enter>
	 if(e->KeyCode == Keys::Enter) 
	 {
		 // засылка URL
		 this->webBrowser1->Navigate(this->textBox1->Text);
	 }
 }

// Кнопка "Refresh"
private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e) {
	 webBrowser1->Refresh();
 }

// Кнопка "GoForward"
private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
	 webBrowser1->GoForward();
 }

// Кнопка "Stop"
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) {
	 webBrowser1->Stop();
 }

// Кнопка "Выход"
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	 Close();
 }

// Кнопка "GoBack"
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
	 webBrowser1->GoBack();
 }
Архив проекта можно взять здесь.

    Результат работы приложения приведен на рисунках 3-5.


Рис.3. Запуск приложения из первой строки окна ListView


Рис.4. Запуск приложения из второй строки окна ListView


Рис.5. Запуск приложения из окна WebBrowser

    На следующем шаге мы рассмотрим компонент ListBox.




Предыдущий шаг Содержание Следующий шаг