Практическое руководство. Отображение ссылок веб-типа с помощью элемента управления RichTextBox в Windows Forms
Обновлен: Ноябрь 2007
Элемент управления Windows Forms RichTextBox позволяет выделять веб-ссылки цветом и подчеркиванием. Можно написать программу, которая при выборе ссылки будет открывать окно обозревателя с соответствующим веб-узлом.
Чтобы создать ссылку на веб-страницу с помощью элемента управления RichTextBox
Присвойте свойству Text строковое значение, включающее допустимый URL-адрес (например, https://www.microsoft.com/).
Убедитесь, что свойство DetectUrls имеет значение true (принимается по умолчанию).
Создает новый глобальный экземпляр объекта Process.
Напишите обработчик событий LinkClicked, который передает нужный текст в программу обозревателя.
В приведенном ниже примере событие LinkClicked открывает экземпляр Internet Explorer на странице, URL-адрес которой задан в свойстве Text элемента управления RichTextBox. В этом примере предполагается, что существует форма с элементом управления RichTextBox.
Примечание о безопасности. При вызове метода Process.Start возникнет исключение SecurityException, вызванное недостаточными правами, если код выполняется в контексте с частичным доверием. Дополнительные сведения см. в разделе Основы управления доступом для кода.
Public p As New System.Diagnostics.Process Private Sub RichTextBox1_LinkClicked _ (ByVal sender As Object, ByVal e As _ System.Windows.Forms.LinkClickedEventArgs) _ Handles RichTextBox1.LinkClicked ' Call Process.Start method to open a browser ' with link text as URL. p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText) End Sub
public System.Diagnostics.Process p = new System.Diagnostics.Process(); private void richTextBox1_LinkClicked(object sender, System.Windows.Forms.LinkClickedEventArgs e) { // Call Process.Start method to open a browser // with link text as URL. p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText); }
public: System::Diagnostics::Process ^ p; private: void richTextBox1_LinkClicked(System::Object ^ sender, System::Windows::Forms::LinkClickedEventArgs ^ e) { // Call Process.Start method to open a browser // with link text as URL. p = System::Diagnostics::Process::Start("IExplore.exe", e->LinkText); }
(Visual C++) Необходимо инициализировать процесс p, для чего достаточно включить в конструктор формы следующую инструкцию:
p = gcnew System::Diagnostics::Process();
(Visual C#, Visual C++) Добавьте в конструктор формы следующий код, чтобы зарегистрировать обработчик событий.
this.richTextBox1.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler (this.richTextBox1_LinkClicked);
this->richTextBox1->LinkClicked += gcnew System::Windows::Forms::LinkClickedEventHandler (this, &Form1::richTextBox1_LinkClicked);
По окончании работы с созданным процессом его необходимо немедленно остановить. В рассматриваемом примере для этого достаточно добавить в программу следующий код:
Public Sub StopWebProcess() p.Kill() End Sub
public void StopWebProcess() { p.Kill(); }
public: void StopWebProcess() { p->Kill(); }
См. также
Ссылки
Другие ресурсы
Элемент управления RichTextBox (Windows Forms)
Элементы управления для использования в формах Windows Forms