Как я могу заставить гиперссылку работать в RichTextBox? - PullRequest
43 голосов
/ 12 января 2009

Когда я добавляю www.stackoverflow.com в свой RichTextBox и запускаю программу, она отображается синим цветом и в виде гиперссылки, когда я нажимаю на нее, ничего не происходит. Как я могу это исправить?

Ответы [ 4 ]

122 голосов
/ 12 января 2009
  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);
}
10 голосов
/ 12 января 2009

Класс RichTextBox позволяет настроить его поведение, когда пользователь нажимает гиперссылку. Добавьте обработчик события для RichTextBox.LinkClicked event

Process p = new Process();

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
   p = Process.Start("IExplore.exe", e.LinkText);
}
2 голосов
/ 12 января 2009

Вы должны убедиться, что DetectUrls установлено на true. Если это не работает само по себе, вам может потребоваться добавить обработчик для события LinkClicked.

1 голос
/ 12 января 2009

Установлено ли yourTextBox.DetectUrls значение true? Нам может потребоваться дополнительная информация, чтобы дать лучший ответ.

...