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