Udostępnij za pośrednictwem


Instrukcje: wyświetlanie linków Web-Style za pomocą kontrolki RichTextBox formularzy systemu Windows

Kontrolka Windows Forms RichTextBox może wyświetlać łącza sieci Web jako kolorowe i podkreślone. Możesz napisać kod, który otwiera okno przeglądarki z witryną sieci Web określoną w tekście linku po kliknięciu linku.

  1. Ustaw właściwość Text na ciąg zawierający prawidłowy adres URL (na przykład https://www.microsoft.com/).

  2. Upewnij się, że właściwość DetectUrls jest ustawiona na true (wartość domyślna).

  3. Utwórz nowe wystąpienie globalne obiektu Process.

  4. Napisz procedurę obsługi zdarzeń dla zdarzenia LinkClicked, które wysyła przeglądarce żądany tekst.

    W poniższym przykładzie zdarzenie LinkClicked uruchamia przeglądarkę Internet Explorer na adres URL określony we właściwości Text kontrolki RichTextBox. W tym przykładzie formularz ma kontrolkę RichTextBox.

    Ważny

    Wywołając metodę Process.Start, wystąpi wyjątek SecurityException, jeśli używasz kodu w kontekście częściowego zaufania z powodu niewystarczających uprawnień. Aby uzyskać więcej informacji, zobacz Podstawy bezpieczeństwa dostępu do kodu.

    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++) Należy zainicjować proces p, co można zrobić, dołączając następującą instrukcję w konstruktorze formularza:

    p = gcnew System::Diagnostics::Process();
    

    (Visual C#, Visual C++) Umieść następujący kod w konstruktorze formularza, aby zarejestrować procedurę obsługi zdarzeń.

    this.richTextBox1.LinkClicked += new
       System.Windows.Forms.LinkClickedEventHandler
       (this.richTextBox1_LinkClicked);
    
    this->richTextBox1->LinkClicked += gcnew
       System::Windows::Forms::LinkClickedEventHandler
       (this, &Form1::richTextBox1_LinkClicked);
    

    Ważne jest, aby natychmiast zatrzymać utworzony proces po zakończeniu pracy z nim. Odwołując się do przedstawionego powyżej kodu, kod umożliwiający zatrzymanie procesu może wyglądać następująco:

    Public Sub StopWebProcess()
       p.Kill()
    End Sub
    
    public void StopWebProcess()
    {
       p.Kill();
    }
    
    public: void StopWebProcess()
    {
       p->Kill();
    }
    

Zobacz też