HOW TO:使用 Windows Form RichTextBox 控制項顯示 Web 樣式連結
Windows Form RichTextBox 控制項可以使用色彩和底線顯示 Web 連結。 您可以寫入程式碼來在按一下連結時,開啟瀏覽器視窗以顯示連結文字中指定的網站。
若要使用 RichTextBox 控制項連結至網頁
將 Text 屬性設定為包含有效 URL (例如 "https://www.microsoft.com/taiwan") 的字串。
確定 DetectUrls 屬性是設為 true (預設值)。
建立 Process 物件的新的全域執行個體。
為 LinkClicked 事件撰寫事件處理常式,將所需文字傳送到瀏覽器。
在以下範例中,LinkClicked 事件將 Internet Explorer 的執行個體,開啟至 RichTextBox 控制項的 Text 屬性中指定之 URL。 這個範例假設含 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(); }