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


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

Обновлен: Ноябрь 2007

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

Чтобы создать ссылку на веб-страницу с помощью элемента управления RichTextBox

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

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

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

  4. Напишите обработчик событий LinkClicked, который передает нужный текст в программу обозревателя.

    В приведенном ниже примере событие LinkClicked открывает экземпляр Internet Explorer на странице, URL-адрес которой задан в свойстве Text элемента управления RichTextBox. В этом примере предполагается, что существует форма с элементом управления RichTextBox.

    f591a55w.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

    При вызове метода 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)

Элементы управления для использования в формах Windows Forms