2014-01-05 82 views
1

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

回答

5

您可以使用DrawItem事件的ListBox:

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); 
} 

注意:您還需要設置列表框的DrawModeDrawMode.OwnerDrawFixedDrawMode.OwnerDrawVariable

+0

感謝您的回答,我收到一個錯誤說該指數無效?此外,我不明白如何應用此特定項目而不是所有列表框項目? –

相關問題