0

数時間前、標準の .net 2.0 winforms コントロール (RichTextBox) を使用して *.rtf ドキュメントを表示するのは非常に簡単であることがわかりました。写真も表示できるのは本当に素晴らしいのですが、私には足りない機能が 1 つあります。それは、ハイパーリンクです。ドキュメント内の段落へのいくつかのハイパーリンクを含む *.rtf ドキュメントを用意しました。次に、このファイルをリソースに配置し、コントロールの rtf プロパティにロードしましたが、残念ながら、リンクをクリックしても機能しません。ハイパーリンクを有効にするためのハックまたは回避策はありますか?

編集:

私の顧客は 1 つの短いドキュメントを準備します (1 つの *.docx ファイルまたは 1 つの *.html ファイルとしましょう)。

これにはいくつかの章が含まれ、ドキュメントの上部に小さな目次を配置したいと考えています。

予期される動作は、ユーザーがトピックをクリックすると、コントロールがそのコンテンツをドキュメント内の目的の場所にスクロールすることです。

リンクではなく、ブックマークが問題なのかもしれません。


OK、必要なソリューションの大部分を説明しようと思います。

私の顧客は 1 つの短いドキュメントを準備します (1 つの *.docx ファイルまたは 1 つの *.html ファイルとしましょう)。

これにはいくつかの章が含まれ、ドキュメントの上部に小さな目次を配置したいと考えています。

予期される動作は、ユーザーがトピックをクリックすると、コントロールがそのコンテンツをドキュメント内の目的の場所にスクロールすることです。

リンクではなく、ブックマークが問題なのかもしれません。

4

1 に答える 1

1

リンクはどのようにフォーマットされており、DetectUrlは正しいですか?

codeprojectから->認識されたプロトコルの1つで始まるリンクのみ(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

マイクロソフトの記事には、LinkClickedイベントの例があります。

private void Link_Clicked (object sender, System.Windows.Forms.LinkClickedEventArgs e)
{
   System.Diagnostics.Process.Start(e.LinkText);
}
于 2008-12-04T20:46:43.827 に答える