web-dev-qa-db-ja.com

RichTextBoxでハイパーリンクを機能させるにはどうすればよいですか?

Www.stackoverflow.comをRichTextBoxに追加してプログラムを実行すると、青色でハイパーリンクとして表示されますが、クリックしても何も起こりません。どうすれば修正できますか?

43
Jade M
  1. Textプロパティに有効なURLが含まれていることを確認してください。例えば。 http://www.stackoverflow.com/

  2. DetectUrlsプロパティをtrueに設定します

  3. LinkClickedイベントのイベントハンドラを記述します。

個人的には、 "IExplore.exe"をパラメーターとしてProcess.Startこれがインストールされていることを前提とし、ユーザーの好みのブラウザであるため、Microsoftのアドバイスに従って呼び出します。 (以下のように)プロセス開始にURLを渡すだけで、Windowsは正しいことを行い、適切なURLでユーザーの好みのブラウザーを起動します。

private void mRichTextBox_LinkClicked (object sender, LinkClickedEventArgs e) {
    System.Diagnostics.Process.Start(e.LinkText);
}
123
Sam Meldrum

RichTextBoxクラスを使用すると、ユーザーがハイパーリンクをクリックしたときの動作をカスタマイズできます。 RichTextBox.LinkClicked イベントのイベントハンドラーを追加します

Process p = new Process();

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
   p = Process.Start("IExplore.exe", e.LinkText);
}
10
aku

DetectUrlstrueに設定されていることを確認する必要があります。それだけでは機能しない場合は、LinkClickedイベントのハンドラーを追加する必要があります。

2
Jeff Yates

yourTextBox.DetectUrls trueに設定しますか?より良い回答を提供するために、さらに情報が必要になる場合があります。

1
Andrew Hare