次の方法で共有


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

更新 : 2007 年 11 月

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 フォームで使用するコントロール