一尘不染

ListBox项的背景色(winforms)

c#

如何在System.Windows.Forms.ListBox中设置特定项目的背景颜色?我希望能够设置多个。


阅读 251

收藏
2020-05-19

共1个答案

一尘不染

可能做到这一点的唯一方法是自己绘制项目。

设置DrawModeOwnerDrawFixed

并在DrawItem事件上编写如下代码:

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    Graphics g = e.Graphics;

    g.FillRectangle(new SolidBrush(Color.Silver), e.Bounds);

    // Print text

    e.DrawFocusRectangle();
}

第二种选择是使用ListView,尽管它们还有另一种实现方式(不是真正的数据绑定,但是在列方式上更灵活)

2020-05-19