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

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

    Компонент расположен в группе All Windows Forms (Все формы Windows Forms) палитры компонентов, он позволяет добавлять Web-сайт ссылки к приложениям (и не только одни ссылки на Web-страницы). Можно задавать адреса папок, файлов (на первом уровне), которые будут находиться и открываться. Наряду с этим главным качеством компонента, его можно использовать аналогично компоненту Label.

    Как же работать с этим компонентом?

    Самое простое - щелкнуть на нем дважды, в результате чего откроется заготовка обработчика. Параметром этого обработчика является ссылка на класс LinkLabelLinkClickedEventArgs, который содержит данные, необходимые для обработки строки типа String, содержащей гиперссылку - обычный адрес, по которому надо добраться до необходимых данных (Web-страницы, обычной папки вашего компьютера или просто файла). Ссылка будет обработана и на ваших глазах появится открытый документ (сайт, содержимое папки или содержимое файла). Но сами по себе они не откроются - надо выполнить метод Start() из класса Process (класса, обеспечивающего запуск различных процессов внутри приложения).

    Вид метода запуска выглядит так:

  System::Diagnostics::Process::Start( str );
где str - это переменная типа String^.

    Итак, самый простой способ использования гиперссылки таков:

    Примеры адреса объекта:

    Форма приложения, использующего LinkLabel и результаты работы - на рисунке 1, а тексты обработчиков событий - в примере ниже.

// Кнопка "Выход"
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	 Close();
 }
// Щелчок по гиперссылке
private: System::Void linkLabel1_LinkClicked(System::Object^  sender, 
       System::Windows::Forms::LinkLabelLinkClickedEventArgs^  e) {
	 linkLabel1->Links[ linkLabel1->Links->IndexOf( e->Link )]->Visited = true;
	 String^ str = textBox1->Text;
	 // класс, обеспечивающий запуск процессов внутри приложения
	 System::Diagnostics::Process::Start( str ); 
 }
Архив проекта можно взять здесь.


Рис.1. Демонстрация работы LinkLabel

    На следующем шаге мы продолжим изучение этого вопроса.




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