Поделиться через


Практическое руководство. Отображение ссылок Web-Style с помощью элемента управления RichTextBox в Windows Forms

Элемент управления RichTextBox Windows Forms может отображать гиперссылки цветными и подчеркнутыми. Вы можете написать код, открыв окно браузера с веб-сайтом, указанным в тексте ссылки при щелчке ссылки.

  1. Задайте для свойства Text строку, содержащую допустимый URL-адрес (например, https://www.microsoft.com/).

  2. Убедитесь, что для свойства DetectUrls задано значение true (по умолчанию).

  3. Создайте новый глобальный экземпляр объекта Process.

  4. Напишите обработчик событий для события 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();
    }
    

См. также