如何着色ListBox项目?

时间:2014-01-05 20:56:38

标签: c# winforms listbox

我想更改ListBox项的颜色。我的代码似乎不起作用。 它只是将类的名称空间添加到ListBox项。

class myListboxItem
{
    public Color ItemColor { get; set; }
    public string Message { get; set; }

    public myListboxItem(Color c, string m)
    {
        ItemColor = c;
        Message = m;
    }
}

将项目添加到ListBox

的代码
listBox1.Items.Add(new myListboxItem(Color.Red,"SKIPPED: " + partThreeOfPath));

这会将项目添加到ListBox,黑色AddFoldersToClientFolder.myListboxItem

1 个答案:

答案 0 :(得分:5)

您可以使用ListBox的DrawItem事件:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    var item = (myListboxItem)listBox1.Items[e.Index];
    e.DrawBackground();

    using (var brush = new SolidBrush(item.ItemColor))
        e.Graphics.DrawString(item.Message, listBox1.Font, brush, e.Bounds);
}

注意:您还需要将ListBox的DrawMode设置为DrawMode.OwnerDrawFixedDrawMode.OwnerDrawVariable