2016-09-28 80 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;