共用方式為


如何:使用 Windows Form RichTextBox 控制項顯示 Web 樣式連結

Windows Forms RichTextBox 控制項可將 Web 連結顯示為彩色並加上底線。 您可以撰寫程式碼,以在點選連結時開啟瀏覽器視窗,其中顯示連結文字中指定的網站。

  1. Text 屬性設定為包含有效 URL (例如 https://www.microsoft.com/) 的字串。

  2. 確定 DetectUrls 屬性設定為 true (預設值)。

  3. 建立 Process 物件的新全域執行個體。

  4. 針對向瀏覽器傳送所需文字的 LinkClicked 事件撰寫事件處理常式。

    在下列範例中,LinkClicked 事件會將 Internet Explorer 執行個體開啟至在 RichTextBox 控制項的 Text 屬性中指定的 URL。 此範例採用具有 RichTextBox 控制項的表單。

    重要

    在呼叫 Process.Start 方法時,如果您因為權限不足而在部分信任的內容中執行程式碼,您將會遇到 SecurityException 例外狀況。 如需詳細資訊,請參閱 Code Access Security Basics

    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();
    }
    

另請參閱