2016-04-14 6 views
1

Как я могу сделать так, чтобы, когда пользователь вводит «{» в richtextbox, он выберет следующую строку для них? Например,Выбор определенной строки в richtextbox

private void richTextBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (richTextBox1.Text.Contains("{")) 
     { 
      richTextBox1.AppendText(Environment.NewLine + " "); // line 1 
      // Put user on line 1 
      richTextBox1.AppendText(Environment.NewLine + "}"); // line 2 
     } 
    } 
+0

Вы хотите вставить текст между фигурными фигурными скобками в новой строке, не так ли? ex .. {Hello {world}} должен отображаться как две строки приветствия и мира? –

+0

@HariPrasad yep. – conjure

+0

Не было бы хорошо, если бы вы справились с ключевым событием для прессы? В основном попробуйте выполнить этот процесс, только если нажата текущая клавиша «{». Прямо сейчас код ищет весь текст в richTextBox1, поэтому любой текст после первой фигурной скобки повторяется несколько раз. Это прекрасно, если это то, чего вы хотите достичь, а просто хотели бы упомянуть. –

ответ

2

Вы можете сделать это, получив длину текстового поля, прежде чем добавить вторую строку, а затем выберите 0 символов в конце этого после добавления второй строки.

private void richTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (richTextBox1.Text.Contains("{")) 
    { 
     richTextBox1.AppendText(Environment.NewLine + " "); // line 1 
     int lastIndex = richTextBox1.Text.Length - 1; 
     richTextBox1.AppendText(Environment.NewLine + "}"); // line 2 
     richTextBox1.SelectionStart = lastIndex; 
     richTextBox1.SelectionLength = 0; 
    } 
} 
Смежные вопросы