在列表框中插入具有特定颜色的项目
本文关键字:颜色 项目 列表 插入 | 更新日期: 2023-09-27 18:21:27
我试图在列表框中插入项目,但我想根据整数为特定项目的文本上色。如何在列表框中插入具有特定颜色的项目?
谢谢!
将Listbox控件的DrawMode设置为OwnerDrawFixed。并将listBox_DrawItem事件处理程序与其关联listBox_DrawItem
private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Graphics yourObj = e.Graphics;
yourObj .FillRectangle(new SolidBrush(Color.Red), e.Bounds);
e.DrawFocusRectangle();
}
描述
ListBox
项可以是任何类型的对象。这意味着您在添加ListBox项目时无法设置它们的颜色。
您需要DrawItem
事件。
ListBox.DrawItem事件当所有者绘制的ListBox的视觉方面发生更改时发生。
样品
private void lstBox_DrawItem(object sender, _
System.Windows.Forms.DrawItemEventArgs e)
{
//
// Draw the background of the ListBox control for each item.
// Create a new Brush and initialize to a Black colored brush
// by default.
//
e.DrawBackground();
Brush myBrush = Brushes.Black;
//
// Determine the color of the brush to draw each item based on
// the index of the item to draw.
//
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Orange;
break;
case 2:
myBrush = Brushes.Purple;
break;
}
//
// Draw the current item text based on the current
// Font and the custom brush settings.
//
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
//
// If the ListBox has focus, draw a focus rectangle
// around the selected item.
//
e.DrawFocusRectangle();
}
更多信息
- 更改单个.Net ListBox项目的颜色
- ListBox.DrawItem事件
也许这段代码会给你一些想法。。。
listView1.Items.Clear();
int k = 0;
foreach (Player p in players)
{
ListViewItem lvitem = new ListViewItem();
lvitem.Text = p.name;
lvitem.BackColor = p.color;
listView1.Items.Add(lvitem);
k++;
}
球员是一流的。它有名字和颜色。