如何替换RTB文本的BackColor

时间:2016-02-08 06:59:53

标签: c# winforms

我需要在RTB中更改文本背景色。 RTB正在循环中创建来自DB的消息数量 我实现了一个逻辑来实现它,但感觉逻辑很简单 那么你能够提出实施相同的想法,或者我的可以吗?

代码:

foreach (DataSet.NoteRow note in _ds.Note)
        {
            CreateNotes(note);
        }
private void CreateNotes(string note)
{
//txt : Rich Text Box dynamically created for each note
//test : Selected text in 'note'
int index = txt.Text.ToUpper().IndexOf(test.ToUpper());
txt.Select(index, test.Length);
txt.SelectionFont = new Font(txt.Font.Name, txt.Font.Size, txt.Font.Style^ FontStyle.Bold);
//x global variable initialised as 1
if(x % 2 == 1)
txt.SelectionBackColor = System.Drawing.Color.Gray;
x++;  }

情景:
如果Notes有5条消息,则替代消息应该具有灰色背景颜色。

1 个答案:

答案 0 :(得分:1)

试试这个

private void CreateNotes(string note)
{
//txt : Rich Text Box dynamically created for each note
//test : Selected text in 'note'
int index = txt.Text.ToUpper().IndexOf(test.ToUpper());
txt.Select(index, test.Length);
txt.SelectionFont = new Font(txt.Font.Name, txt.Font.Size, txt.Font.Style^ FontStyle.Bold);
 Random rnd = new Random();

//x global variable initialised as 1
if(x % 2 == 1)
txt.SelectionBackColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));
x++;  }