1

可能重复:
列表框项目的背景颜色(winforms)

我有一个 ListBox,对于每个坐标,我需要有不同的颜色。前任。

23,34 //red background
56,78 //green background
90,2 // yellow background

代码:

        for (int i = 0; i < il_kl; i++)
        {
            int il_pkt = Klastry[i].Punkty.Count;
            string color = lista_kolor[i]; 
            Brush mybrush = (Brush)new BrushConverter().ConvertFromString(color);

            for (int j = 0; j < il_pkt; j++)
            {
                x = Klastry[i].Punkty[j].X;
                y = Klastry[i].Punkty[j].Y;

                _mn.kolekcje_wsp.Items.Add(x + " , " + y);
                _mn.kolekcje_wsp.Foreground = mybrush;

            }

        }

我现在正在使用Foreground,但是如何更改Background每个坐标的颜色?

4

1 回答 1

0

您可以尝试以下方法,看看它是否适合您

可能实现这一点的唯一方法是自己绘制项目。

将 DrawMode 设置为 OwnerDrawFixed

并在 DrawItem 事件上编写如下代码:

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    Graphics myCustomGraphic = e.Graphics;
    myCustomGraphic.FillRectangle(new SolidBrush(Color.Yellow), e.Bounds);
    // Print text
    e.DrawFocusRectangle();
}
于 2012-10-30T21:05:16.513 回答