读书人

怎么实现listbox相邻行颜色不一样

发布时间: 2013-01-05 15:20:39 作者: rapoo

如何实现listbox相邻行颜色不一样?
在网上看到这段方法能实现相邻行字体颜色不同,但是我要实现背景色不同,请问有何方法。求指导。

     private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
listBox1.DrawMode = DrawMode.OwnerDrawFixed; //允许手动设置控件元素
// 定义默认笔刷的颜色
Brush myBrush = Brushes.Black;
//设置奇偶不同的笔刷
if (e.Index % 2 == 0)
{
myBrush = Brushes.Red;
}
else
{
myBrush = Brushes.Blue;
}
// 根据设置的笔刷重新绘制项
e.DrawBackground();
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,
e.Bounds, StringFormat.GenericDefault);
// e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,
// e.Bounds, StringFormat.GenericDefault);
// 绘制聚焦框
e.DrawFocusRectangle();
}

[解决办法]
引用:
[quote=引用:]
现在调试了下,但是只有第一次时能选中变为蓝色,接下去的都不行。而且如果选中变灰的那些项后再去选其它项,就会发现原来是灰色背景已经变白了。

在ListBox的SelectChanged中调用listBox1.Refreash();

读书人网 >C#

热点推荐