Comment ajouter \ ligne dans RTF en utilisant le contrôle RichTextBox

Lors de l'utilisation de Microsoft contrôle RichTextBox, il est possible d'ajouter de nouvelles lignes comme ça...

richtextbox.AppendText(System.Environment.NewLine); //appends \r\n

Cependant, maintenant, si vous affichez le rtf généré le \r\n caractères sont convertis \par pas \ligne

Comment puis-je insérer un \contrôle de la ligne de code dans le générés RTF?

Ce qui ne fonctionne pas:

Remplacement du Jeton

Hacks comme l'introduction d'un jeton à la fin de la chaîne, puis de le remplacer après le fait, donc quelque chose comme ceci:

string text = "my text";
text = text.Replace("||" "|"); //replace any '|' chars with a double '||' so they aren't confused in the output.
text = text.Replace("\r\n", "_|0|_"); //replace \r\n with a placeholder of |0|

richtextbox.AppendText(text);

string rtf = richtextbox.Rtf;
rtf.Replace("_|0|_", "\\line"); //replace placeholder with \line
rtf.Replace("||", "|"); //set back any || chars to |

Ce presque fonctionné, il se décompose si vous avez à l'appui de texte de droite à gauche comme la droite vers la gauche de contrôle de la séquence se termine toujours dans le milieu de l'espace réservé.

Envoi de Messages Clés

public void AppendNewLine()
{
    Keys[] keys = new Keys[] {Keys.Shift, Keys.Return};
    SendKeys(keys);
}

private void SendKeys(Keys[] keys)
{
    foreach(Keys key in keys)
    {
        SendKeyDown(key);
    }
}

private void SendKeyDown(Keys key)
{
    user32.SendMessage(this.Handle, Messages.WM_KEYDOWN, (int)key, 0);
}

private void SendKeyUp(Keys key)
{
    user32.SendMessage(this.Handle, Messages.WM_KEYUP, (int)key, 0);
}

Ce aussi finit par être converti en un \par

Est-il un moyen de poster un message complet directement à la msftedit de contrôle pour insérer un caractère de contrôle?

Je suis totalement perplexe, toutes les idées, les gars? Merci pour votre aide!

source d'informationauteur Steve Sheldon