2016-08-22 5 views
0

У меня есть переменная, скажем, она = 5, а затем я хочу, чтобы строка номер 5 была выделена синим цветом в моем RichTextBox1. возможно ли вообще?Выделение строки в RichTextBox1, номер строки = переменная

Или я должен использовать что-то вроде ListBox, DataGridView и т.д.

enter image description here

+1

Является ли это WPF или Windows Forms или Windows Universal? –

+0

Если это winforms да, это возможно. вы можете показать нам, что вы пробовали ..? также выполните простой поиск в Google, и вы найдете множество ответов. http://stackoverflow.com/questions/14765947/highlight-specific-text-in-richtextbox – MethodMan

+0

да, это приложение Windows Forms, до сих пор у меня нет попробуйте что-нибудь действительно. Я новичок в C# –

ответ

0

Это позволит выделить текст в данной строке в RichTextBox если WordWrap выключен:

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

Примечание что если значение WordWrap истинно, оно все равно выделит линию, но только насколько это видно. Его продолжение на следующей строке не будет изменено.

Также обратите внимание, что можно выделить только Text. Недостаточное пространство пустого места afaik. Here - пример попытки владельца провести подкласс RTB.

+0

ОК, спасибо, я дам ему попробовать :) –

+0

Должен ли я заменить «rtb» на имя моего RichTextBox «richTextBox1»? –

+0

Я пробовал эту пустоту highLightALine (RichTextBox richTextBox1, int line, Color hiLight) { richTextBox1.SelectionStart = 5; richTextBox1.SelectionLength = 6; richTextBox1.SelectionBackColor = hiLight; } –

Смежные вопросы