2016-09-28 74 views
-1

我試圖改變列表框中的一個speicifc項目的顏色。這是我正在使用的代碼。問題是,列表框中的所有項目都獲得相同的顏色和相同的文本。我無法弄清楚我做錯了什麼。WindowsForm listbox繪製項目

private void button1_Click(object sender, EventArgs e) 
{ 
    lbPossibleChildren.DrawMode = DrawMode.OwnerDrawFixed; 
    lbPossibleChildren.DrawItem += new DrawItemEventHandler(lbDraw); 
} 
private void lbDraw(object sender, DrawItemEventArgs e) 
{ 
    e.DrawBackground(); 
    Graphics g = e.Graphics; 
    g.FillRectangle(new SolidBrush(Color.Orange), e.Bounds); 
    g.DrawString(lbPossibleChildren.Items[3].ToString(), e.Font, new SolidBrush(e.ForeColor), new PointF(e.Bounds.X, e.Bounds.Y)); 
    e.DrawFocusRectangle(); 
} 

ScreenShot of the result

+0

您正在以同樣的方式繪製所有項目,也使用相同的文本。 –

+0

我這麼認爲。我怎樣才能切換到只繪製其中一個? – MonicaS

+0

你可以使用listview而不是使用ListBox嗎? –

回答

1

您可以replece您listboxlistview它允許更改項目顏色。

listView1.Items[1].BackColor = Color.Green;