Практическое руководство. Отображение ссылок Web-Style с помощью элемента управления RichTextBox в Windows Forms
Элемент управления RichTextBox Windows Forms может отображать гиперссылки цветными и подчеркнутыми. Вы можете написать код, открыв окно браузера с веб-сайтом, указанным в тексте ссылки при щелчке ссылки.
Ссылка на веб-страницу с элементом управления 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(); }
См. также
- DetectUrls
- LinkClicked
- RichTextBox
- элемент управления RichTextBox
- элементы управления для использования в Windows Forms
.NET Desktop feedback