次の方法で共有


方法 : Windows フォームの RichTextBox コントロールを使用して Web スタイルのリンクを表示する

Windows フォームの RichTextBox コントロールでは、Web リンクに色と下線を付けて表示できます。 リンクがクリックされたときにブラウザー ウィンドウを開いて、リンク テキストで指定されている Web サイトを表示するように、コードを記述できます。

RichTextBox コントロールで Web ページにリンクするには

  1. Text プロパティに、有効な URL ("https://www.microsoft.com/japan" など) を含む文字列を設定します。

  2. DetectUrls プロパティが true (既定値) に設定されていることを確認します。

  3. Process オブジェクトの新しいグローバル インスタンスを作成します。

  4. ブラウザーに目的のテキストを送信する 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();
    }
    

参照

参照

DetectUrls

LinkClicked

RichTextBox

その他の技術情報

RichTextBox コントロール (Windows フォーム)

Windows フォームで使用するコントロール