C#,怎么设置listbox文本的颜色?
Winform的
- C# code
设置this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;private void listBox1_DrawItem(object sender, DrawItemEventArgs e) { string s = this.listBox1.Items[e.Index].ToString(); if (s.Contains("初始化成功")) { e.Graphics.DrawString(s, this.Font, Brushes.Green,e.Bounds); } else if (s.Contains("初始化失败")) { e.Graphics.DrawString(s, this.Font, Brushes.Red, e.Bounds); } else e.Graphics.DrawString(s,this.Font,new SolidBrush(this.ForeColor),e.Bounds); }
网上有找到上面的代码,但不知道怎么用。
我要的效果是当选项里的某一行的值与给出的值相等时,就变成红色。
比较菜,请详细些,谢谢。
[解决办法]
- C# code
private void Form1_Load(object sender, EventArgs e) { this.listBox1.DrawMode = DrawMode.OwnerDrawFixed; this.listBox1.Items.Add("aa"); this.listBox1.Items.Add("bb"); this.listBox1.Items.Add("cc"); this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem); } private void listBox1_DrawItem(object sender, DrawItemEventArgs e) { string s = this.listBox1.Items[e.Index].ToString(); if (s.Contains("cc")) { e.Graphics.DrawString(s, this.Font, Brushes.Red, e.Bounds); } else e.Graphics.DrawString(s, this.Font, new SolidBrush(this.ForeColor), e.Bounds); }