2008-12-04 2 views
0

Несколько часов назад я обнаружил, что очень легко отображать * .rtf-документ, используя стандартный winforms control (RichTextBox). Это действительно здорово, что он может отображать даже картинки, но для меня есть одна недостающая функция - гиперссылка. Я подготовил * .rtf документ с несколькими гиперссылками к абзацам внутри документа. Затем я помещал этот файл в ресурсы и загружался в свойство rtf управления, но несчастливо, щелчок по ссылкам не работает. Есть ли возможность взломать или обходной путь для включения гиперссылок?rtftextbox и гиперссылки/привязки внутри документа

EDIT:

Мой клиент подготовит один короткий документ (скажем, один * .docx файл или один файл * .html).

Он будет содержать несколько глав, и мы хотим разместить небольшое оглавление в верхней части документа.

Ожидаемое поведение - это то, что пользователь нажимает тему, а элемент управления просматривает его содержимое в нужное место в документе.

Так что, возможно, речь идет не о ссылках, а о закладках.

ОК, я попытаюсь описать большую часть необходимого решения.

Мой клиент подготовит один короткий документ (скажем, один файл * .docx или один файл * .html).

Он будет содержать несколько глав, и мы хотим разместить небольшое оглавление в верхней части документа.

Ожидаемое поведение - это то, что пользователь нажимает тему, а элемент управления просматривает его содержимое в нужное место в документе.

Так что, возможно, речь идет не о ссылках, а о закладках.

ответ

1

Как ваши ссылки отформатированы и являются ли DetectUrl истинными?

От codeproject -> только ссылки, начинающиеся с одного из признанных протоколов (http :, file :, mailto :, ftp :, https :, gopher :, nntp :, prospero :, telnet :, news :, wais: , перспективы :) признаны и переформатированы.

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); 
}