Ich möchte die gesamte Zeile markieren, von Anfang bis Ende spielt keine Rolle, ob Zeichen vorhanden sind oder nicht, und Zeile kann leer sein, aber es sollte die komplette Zeile markieren.Markieren Sie die gesamte Zeile in einer RichTextBox
0
A
Antwort
0
Dies wird eine volle Linie in einem RichTextBox
markieren, wenn WordWrap
ausgeschaltet ist:
void highLightALine(RichTextBox rtb, int line, Color hiLight)
{
int i1 = rtb.GetFirstCharIndexFromLine(line);
int i2 = rtb.GetFirstCharIndexFromLine(line + 1);
if (i2 < 0) i2 = rtb.Text.Length;
rtb.SelectionStart = i1;
rtb.SelectionLength = i2 - i1;
rtb.SelectionBackColor = hiLight;
}
Beachten Sie, dass, wenn WordWrap
wahr ist, wird es noch die Zeile markieren, aber nur so weit wie es ist sichtbar. Seine Fortsetzung in der nächsten Zeile wird nicht geändert.
Beachten Sie auch, dass nur Text
hervorgehoben werden kann. Leerraum kann nicht hervorgehoben werden afaik. Here ist ein Beispiel für den Versuch, eine RTB-Unterklasse zu zeichnen.
+0
Ich möchte die gesamte Zeile auch die leeren Leerzeichen hervorheben. – Kamlesh
Sie müssen wissen, ob WordWrap aktiviert oder deaktiviert ist. – TaW
http://www.codeproject.com/Questions/166848/richTextbox-Highlight-complete-line – CodeCaster
Es wird gut sein. – Kamlesh