J'utilise le contrôle System.Windows.Forms.RichTextBox dans .NET 2.0 et j'utilise C#.Comment pouvez-vous ajouter une ligne , pas un par un System.Windows.Forms.RichTextBox
J'ai un tableau de chaînes que je voudrais ajouter à la RichTextBox, mais je ne veux pas créer de nouveaux paragraphes dans le RTF. Je veux que les lignes soient divisées par les commandes \ line, pas par \ dans le RTF. (Je veux simuler quelqu'un en tapant Maj + Entrée au lieu de simplement entrer.)
Je n'ai pas réussi à obtenir RichTextBox.AppendText pour générer une commande \ line au lieu d'une commande \ par. J'ai donc inséré mon texte puis inséré manuellement la commande \ line dans le fichier RTF lui-même.
Cela échoue lorsque l'une des chaînes contient des caractères qui sont échappés dans le RTF (un seul closequote est converti en \ rquote par exemple) parce que je ne trouve pas la chaîne d'origine insérée dans le RTF.
Avec cette solution, j'aurai besoin d'échapper les caractères de ma ligne avant de la chercher dans le RTF.
Existe-t-il un moyen pour que le contrôle RichTextBox génère la commande \ line et non la commande \ par ou devrais-je coller avec cette solution et rechercher la chaîne d'échappement RTF.
Voici mon code actuel:
string[] lines = textInfo.Lines;
for (int i = 0; i < lines.Length; i++)
{
rtb.AppendText(lines[i]);
if (i < lines.Length - 1)
{
string rtf = rtb.Rtf;
int insertedIndex = rtf.LastIndexOf(lines[i]);
int length = lines[i].Length;
rtf = rtf.Insert(insertedIndex + length, @"\line");
rtb.Rtf = rtf;
}
}
Cela a été ma découverte aussi. Je ne veux pas remplacer toutes les instances \ par par des instances \ line dans le RTF, donc je pense que je vais devoir continuer à utiliser ma solution à moins que je trouve quelque chose de mieux. – jameswelle
Je suppose que vous avez raison, cela tuerait tous les paragraphes de votre document. À moins que vous ne trouviez un moyen de modifier de manière sélective la façon dont le contrôle RichTextBox effectue des sauts de ligne, il est temps de hack! Modifier la réponse ... – Luis