我想更改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
。
答案 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.OwnerDrawFixed
或DrawMode.OwnerDrawVariable