在网上看到这段方法能实现相邻行字体颜色不同,但是我要实现背景色不同,请问有何方法。求指导。 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();
}
{
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();
}
{ // 定义默认笔刷的颜色
Brush myBrush = Brushes.Black;
Brush myBrush1 = Brushes.Black;
//设置奇偶不同的笔刷
if (e.Index % 2 == 0)
{
myBrush = Brushes.Red;
myBrush1 = Brushes.White;
}
else
{
myBrush = Brushes.Blue;
myBrush1 = Brushes.Gray;
}
// 根据设置的笔刷重新绘制项
e.Graphics.FillRectangle(myBrush1, e.Bounds);
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();
}
e.DrawBackground(); //如果是选中的,就按照默认的画
else
e.Graphics.FillRectangle(myBrush1, e.Bounds);
{
// 定义默认笔刷的颜色
Brush myBrush = Brushes.Black;
Brush myBrush1 = Brushes.Black;
//设置奇偶不同的笔刷
if (e.Index % 2 == 0)
{
myBrush = Brushes.Red;
myBrush1 = Brushes.White;
}
else
{
myBrush = Brushes.Blue;
myBrush1 = Brushes.Gray;
}
// 根据设置的笔刷重新绘制项
e.Graphics.FillRectangle(myBrush1, e.Bounds);
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();
}
我原封不动加在DrawItem事件里一点效果也没有啊 求助