日期:2014-05-17  浏览次数:20806 次

如何实现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();