2008-12-04 8 views
0

Il y a quelques heures, j'ai trouvé qu'il est vraiment facile d'afficher un document * .rtf en utilisant standart .net 2.0 winforms control (RichTextBox). C'est vraiment cool de pouvoir afficher même des images, mais pour moi il y a une fonctionnalité manquante - l'hyperlien. J'ai préparé un document * .rtf avec quelques hyperliens vers des paragraphes à l'intérieur du document. Ensuite, j'ai mis ce fichier dans les ressources et chargé à la propriété rtf de contrôle, mais malheureusement, en cliquant sur les liens ne fonctionne pas. Y a-t-il un possible hack ou solution de contournement pour activer les liens hypertexte?rtftextbox et hyperliens/ancres dans le document

EDIT:

Mon client préparera un court document (disons un * .docx fichier ou un fichier * .html).

Il contiendra quelques chapitres et nous voulons placer une petite table des matières en haut du document.

Le comportement attendu est que l'utilisateur clique sur le sujet et le contrôle fait défiler son contenu vers l'endroit souhaité dans le document. Alors peut-être que ce n'est pas sur les liens, mais sur bookmarking.


OK, je vais essayer de décrire une plus grande partie de la solution nécessaire.

Mon client préparera un document court (disons un fichier * .docx ou un fichier * .html).

Il contiendra quelques chapitres et nous voulons placer une petite table des matières en haut du document.

Le comportement attendu est que l'utilisateur clique sur le sujet et le contrôle fait défiler son contenu vers l'endroit souhaité dans le document. Alors peut-être que ce n'est pas sur les liens, mais sur bookmarking.

Répondre

1

Comment vos liens sont-ils formatés et DetectUrl est-il vrai? De codeproject -> uniquement les liens commençant par l'un des protocoles reconnus (http :, file :, mailto :, ftp :, https :, gopher :, nntp :, prospero :, telnet :, news :, wais: , outlook :) sont reconnus et reformatés.

http://www.codeproject.com/KB/edit/RichTextBoxLinks.aspx

http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.detecturls(VS.80).aspx

L'article Microsoft a un exemple sur l'événement LinkClicked.

private void Link_Clicked (object sender, System.Windows.Forms.LinkClickedEventArgs e) 
{ 
    System.Diagnostics.Process.Start(e.LinkText); 
} 
Questions connexes