Как изменить цвет фона определенной строки в RichTextBox? - PullRequest
6 голосов
/ 01 марта 2011

Я хочу изменить цвет всей строки, независимо от того, есть текст или нет.Вот поясняющее изображение:

http://img131.imageshack.us/img131/1802/highlightlineqt2.png.

Я нашел какое-то решение здесь , но я надеюсь, что есть более простое решение.

Ответы [ 3 ]

2 голосов
/ 04 августа 2016

Нет, сначала вы должны выбрать линию, а затем установить цвет:

 public void MarkSingleLine()
 {
     int firstCharOfLineIndex = myRichTextBox.GetFirstCharIndexOfCurrentLine();
     int currentLine = richTextBox1.GetLineFromCharIndex(firstCharOfLineIndex);
     this.myRichTextBox.Select(firstCharOfLineIndex, currentLine);
     this.myRichTextBox.SelectionBackColor = Color.Aqua;
     this.myRichTextBox.Select(0, 0);
 }
0 голосов
/ 27 апреля 2018

Вы можете использовать этот кусок кода:

private void richTextBox_LOG_write_text(string text, Color text_color, Color background_color)
    {
        try
        {
            if(richTextBox_LOG.InvokeRequired == true)
            {
                Invoke(new Delegate_void_string_colortext_colorbackground(richTextBox_LOG_write_text), new object[] { text, text_color, background_color  });
            }
            int text_size = richTextBox_LOG.Text.Length;
            richTextBox_LOG.AppendText(text);
            richTextBox_LOG.Select(text_size, text.Length);
            if(text_color == null)
            {
                text_color = Color.Black;
            }
            richTextBox_LOG.SelectionColor = text_color;
            if(background_color != null)
            {
                richTextBox_LOG.SelectionBackColor = background_color;
            }
        }
        catch { }
    }
0 голосов
/ 01 марта 2011

хорошо, тогда возможно это ( найдено здесь ):

private void richTextBox1_MouseClick(object sender, MouseEventArgs e, Color color)
{
    int firstcharindex = richTextBox1.GetFirstCharIndexOfCurrentLine();
    int currentline = richTextBox1.GetLineFromCharIndex(firstcharindex);
    string currentlinetext = richTextBox1.Lines[currentline];
    richTextBox1.SelectionBackColor = color;
    richTextBox1.Select(firstcharindex, currentlinetext.Length);
}

этот фрагмент должен решить вашу проблему; -)

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