我想更改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

最佳答案

您可以使用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

09-18 11:06