0

C# 我目前有一个 win 表单,我可以显示我在 Listbox 中的两个列表,但是由于这两个列表是合并的,因此数据看起来可能有点混乱。无论如何,我可以将列表 1 的项目颜色设置为蓝色,将列表 2 的项目颜色设置为红色吗?

private void updatesum()
{
  listBox.Items.Clear();
  List<String> listOfDels = theDatabase.listDeliveries();
  List<String> listofPicks = theDatabase.listPickups();

  listBox.Items.AddRange(listOfDels.ToArray());
  listBox.Items.AddRange(listofPicks.ToArray());
}
4

2 回答 2

2

您必须订阅 ListBox 的 DrawItem 并为自己绘制 BackColor:

listBox.DrawItem += new DrawItemEventHandler(listBox_DrawItem);

我认为您的活动应该是这样的:

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    Graphics g = e.Graphics;

    g.FillRectangle(new SolidBrush(Color.Blue), e.Bounds);

    g.DrawString(listBox.Items[e.Index].ToString(), 
        e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);

    e.DrawFocusRectangle();
}
于 2012-11-27T14:48:23.997 回答
0

在此处此处查看类似问题的其他一些答案。我以前从未这样做过,但它们似乎符合要求。希望能帮助到你。

于 2012-11-27T14:25:02.943 回答