Windows フォーム RichTextBox コントロールでは、Web リンクを色分けされた下線付きで表示できます。 リンクがクリックされたときにリンク テキストに指定された Web サイトを示すブラウザー ウィンドウを開くコードを記述できます。
RichTextBox コントロールを使用して Web ページにリンクするには
Text プロパティを、有効な URL (
https://www.microsoft.com/
など) を含む文字列に設定します。DetectUrls プロパティが
true
(既定値) に設定されていることを確認します。Process オブジェクトの新しいグローバル インスタンスを作成します。
ブラウザーに目的のテキストを送信する LinkClicked イベントのイベント ハンドラーを記述します。
次の例では、LinkClicked イベントによって Internet Explorer のインスタンスが開き、Text コントロールの RichTextBox プロパティに指定された 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(); }
こちらも参照ください
- DetectUrls
- LinkClicked
- RichTextBox
- RichTextBox コントロール
- Windows フォーム で使用する
コントロール
.NET Desktop feedback