2016-08-22 2 views
0

Ich habe eine Variable, sagen wir es = 5, und dann möchte ich die Zeile Nummer 5 in meiner RichTextBox1 "blau" markiert. ist das überhaupt möglich?Markieren einer Zeile in einer RichTextBox1, Zeilennummer = eine Variable

Oder sollte ich so etwas wie ein List-Box, usw. Datagridview

enter image description here

+1

Ist dies WPF oder Windows Forms oder Windows Universal? –

+0

Wenn dies Winforms ist, ist dies möglich. Kannst du uns zeigen, was du versucht hast? auch tun Sie eine einfache Google-Suche und Sie werden Tonnen von Antworten finden .. http://stackoverflow.com/questions/14765947/highlight-specific-text-in-richtextbox – MethodMan

+0

ja es ist Windows Forms Application, bisher habe ich nicht versuche alles wirklich. Ich bin neu in C# –

Antwort

0

Dieser Text in einer bestimmten Zeile in einer RichTextBox wenn WordWrap ausgeschaltet Highlight wird:

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; 
} 

Hinweis dass, wenn WordWrap wahr ist, es immer noch die Linie markieren wird, aber nur soweit es sichtbar ist. Seine Fortsetzung in der nächsten Zeile wird nicht geändert.

Beachten Sie auch, dass nur Text hervorgehoben werden kann. Nachlauf leerer Bereich kann nicht hervorgehoben werden afaik. Here ist ein Beispiel für den Versuch, eine RTB-Unterklasse zu zeichnen.

+0

ok danke, ich werde es versuchen :) –

+0

sollte ich ersetzen "rtb" mit dem Namen meiner RichTextBox "richTextBox1"? –

+0

ich habe versucht, diese void highLightALine (RichTextBox richTextBox1, int line, Farbe hiLight) { richTextBox1.SelectionStart = 5; richTextBox1.SelectionLength = 6; richTextBox1.SelectionBackColor = hiLight; } –

Verwandte Themen