Практическое руководство. Отображение ссылок веб-типа с помощью элемента управления RichTextBox в Windows Forms
Windows Forms RichTextBox веб-ссылок может отображать элемент управления цветом и подчеркиванием. Можно написать код, который открывает окно браузера, веб-узлом, указанный в тексте ссылки, при щелчке ссылки.
Чтобы связать веб-страницу с элементом управления RichTextBox
Задайте Text свойство на строку, которая содержит допустимый URL-адрес (например, "http://www.microsoft.com/«).
Убедитесь, что DetectUrls свойству
true
(по умолчанию).Создать новый глобальный экземпляр Process объекта.
Написать обработчик событий для LinkClicked событий, который отправляет браузер требуемый текст.
В следующем примере LinkClicked событий открывает экземпляр Internet Explorer на URL-адрес, указанный в Text свойство RichTextBox элемента управления. В этом примере предполагается, что форма RichTextBox элемента управления.
Important
В вызывающем 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(); }