Ich versuche, einen einfachen WYSIWYG-Editor zu machen. Ich fand es ziemlich schwierig, das rtb zu formatieren. Es soll grundlegende Dinge wie fett, kursiv, färbend (und gemischt) formatieren.RichTextBox Formatierung ist sehr langsam
Was habe ich gefunden und versucht, so weit:
private void boldButton_Click(object sender, EventArgs e)
{
int start = rtb.SelectionStart;
int length = rtb.SelectionLength;
for (int i = start, max = start + length; i < max; ++i)
{
rtb.Select(i, 1);
rtb.SelectionFont = new Font(rtb.Font, rtb.SelectionFont.Style | FontStyle.Bold);
}
rtb.SelectionStart = start;
rtb.SelectionLength = length;
rtb.Focus();
}
rtb = richtextbox.
Dies funktioniert wie erwartet, ist aber furchtbar langsam. Ich fand auch die Idee über die Verwendung und Formatierung direkt das RTF, aber das Format scheint zu kompliziert und sehr leicht zu verwechseln. Ich hoffe, es ist eine bessere Lösung.
Vielen Dank.
Bitte definieren Sie "langsam", wo diese Langsamkeit auftritt. Fängt die Anwendung plötzlich an, wenn Sie die Fetttaste drücken? – BlackBox
Mit 2^14 dauerte es etwa 2.421.2091 Sekunden. Mit 2^15 -> 4.973971 Sekunden. Es scheint ziemlich langsam für mich. Ich war expection <0,5 Sekunden. –
Sie müssen die Zeichnung ausschalten, bis Sie alles in Ihrer Schleife abgeschlossen haben. Siehe [RichTextBox BeginUpdate() EndUpdate() - Erweiterungsmethoden funktioniert nicht] (http://stackoverflow.com/q/9418024/719186) – LarsTech