我需要在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条消息,则替代消息应该具有灰色背景颜色。
答案 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++; }