1 votes

transférer le texte souligné dans le presse-papiers

J'ai un programme dans lequel l'utilisateur saisit des données, puis il crée une lettre type et la copie dans le presse-papiers.

Certains utilisateurs ont indiqué qu'ils souhaitaient que certaines parties de la lettre soient soulignées pour faciliter la lecture par les destinataires (titres, etc.).

Je ne connais pas de moyen de marquer quelque chose comme étant souligné.

J'utilise actuellement

Clipboard.SetDataObject(sb.ToString(), true);

où sb est un constructeur de chaînes de caractères

Une idée sur la façon de marquer quelque chose comme souligné ?

2voto

Martin Brown Points 8593

Vous pouvez envisager le RTF comme alternative au HTML, car il est plus ancien, bénéficie souvent d'une meilleure prise en charge et a plus de chances d'aboutir à un véritable document texte plutôt qu'à l'horrible interprétation du HTML par MS Words. Vous constaterez également que le RTF supporte les sauts de page, ce qui n'est pas le cas du HTML. Mais attention, le balisage en RTF est un peu bizarre. Par exemple :

Clipboard.SetText(@"{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fswiss\fcharset0 Arial;}}\viewkind4\uc1\pard\f0\fs20 text \ul  text\ulnone  text\par}", TextDataFormat.Rtf);

El spécification pour RTF peut être obtenu auprès de Microsoft aquí .

1voto

Tim S. Van Haren Points 5936

En supposant que vos utilisateurs collent dans un programme qui reconnaît le HTML (tel que Microsoft Word), vous pouvez le faire :

string underlinedText = "<span style=\"text-decoration: underline;\">" + 
                            sb.ToString() + "</span>";
Clipboard.SetDataObject(underlinedText, true);

Cela permet de souligner l'intégralité de l'extrait de texte qui est copié dans la mémoire tampon du presse-papiers.

-2voto

Tony Borf Points 1950

Où est-ce qu'ils collent ces données ? Votre code est-il une application client ou web ?

Je suggère d'ajouter un contrôle WYSIWYG ou RichTextBox. Cela peut donner à l'utilisateur la possibilité de faire du formatage dans votre programme avant le couper-coller.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X