RichTextBox цветная специфическая линия - PullRequest
0 голосов
/ 20 февраля 2019

Как мне покрасить строку в RichTextBox, которая начинается с #, как комментарий в python.У меня есть этот код, но он должен окрашивать только строку, где находится #.Мой код раскрашивает все после того, как написано одно:

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
  string text = richTextBox1.Text;
  if (richTextBox1.Lines.Contains("#") == true)
  {
    int firstcharindex = richTextBox1.GetFirstCharIndexOfCurrentLine();
    int currentline = richTextBox1.GetLineFromCharIndex(firstcharindex);
    richTextBox1.Select(firstcharindex, 10);
    richTextBox1.SelectionColor = Color.Red;
    richTextBox1.DeselectAll();
    richTextBox1.Select(richTextBox1.Text.Length, 0);
  }
}

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вам не хватает условия else, также выполните это для каждой строки в TexBox, как показано ниже

string text = richTextBox1.Text;
foreach (var line in richTextBox1.Lines)
{
  if (line.Contains("#"))
  {
    int firstcharindex = richTextBox1.GetFirstCharIndexOfCurrentLine();
    int currentline = richTextBox1.GetLineFromCharIndex(firstcharindex);
    richTextBox1.Select(firstcharindex, 10);
    richTextBox1.SelectionColor = Color.Red;
    richTextBox1.DeselectAll();
    richTextBox1.Select(richTextBox1.Text.Length, 0);
  }
  else
  {
    int firstcharindex = richTextBox1.GetFirstCharIndexOfCurrentLine();
    int currentline = richTextBox1.GetLineFromCharIndex(firstcharindex);
    richTextBox1.Select(firstcharindex, 10);
    richTextBox1.SelectionColor = Color.Black;
    richTextBox1.DeselectAll();
    richTextBox1.Select(richTextBox1.Text.Length, 0);
  }
}
0 голосов
/ 20 февраля 2019

Вы должны указать richTextBox1.SelectionLength.Вы должны установить это в свою длину строки.

Также см .: Выборочно окрашенный текст в RichTextBox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...