Несколько часов назад я обнаружил, что с помощью стандартного элемента управления winforms .net 2.0 (RichTextBox) очень легко отобразить документ * .rtf. Это действительно здорово, что он может отображать даже изображения, но мне не хватает одной функции - гиперссылки. Я подготовил * .rtf документ с несколькими гиперссылками на абзацы внутри документа. Затем я помещаю этот файл в ресурсы и загружаю его в свойство rtf элемента управления, но, к сожалению, щелчок по ссылкам не работает. Есть ли способ или обходной путь для включения гиперссылок?
Обновлено:
Мой клиент подготовит один короткий документ (скажем, один файл * .docx или один файл * .html).
Он будет содержать несколько глав, и мы хотим разместить небольшое оглавление вверху документа.
Ожидаемое поведение заключается в том, что пользователь щелкает тему, и элемент управления прокручивает ее содержимое в желаемое место в документе.
Так что, может быть, дело не в ссылках, а в закладках.
Хорошо, я постараюсь описать большую часть необходимого решения.
Мой клиент подготовит один короткий документ (скажем, один файл * .docx или один файл * .html).
Он будет содержать несколько глав, и мы хотим разместить небольшое оглавление вверху документа.
Ожидаемое поведение заключается в том, что пользователь щелкает тему, и элемент управления прокручивает ее содержимое в желаемое место в документе.
Так что, может быть, дело не в ссылках, а в закладках.





Как отформатированы ваши ссылки и является ли DetectUrl истинным?
Из codeproject -> только ссылки, начинающиеся с одного из распознанных протоколов (http :, file :, mailto :, ftp :, https :, gopher :, nntp :, prospero :, telnet :, news :, wais :, outlook :) распознаются и переформатируются.
http://www.codeproject.com/KB/edit/RichTextBoxLinks.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.detecturls(VS.80).aspx
В статье Microsoft есть пример события LinkClicked.
private void Link_Clicked (object sender, System.Windows.Forms.LinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(e.LinkText);
}