如何根据列表框的索引改变列表框的颜色
本文关键字:列表 改变 颜色 索引 何根 | 更新日期: 2023-09-27 18:09:50
我想根据它的索引改变ListBox项目的颜色。我有一个文本框…当用户输入索引号时,我想改变列表框
中相应索引的文本颜色当用户点击一个按钮时,会发生这样的事情: private void button1_Click(object sender, EventArgs e)
{
setcolor(int.Parse(textBox1.Text));
}
和我想创建这样的setcolor函数。Listview不适合我。
您需要处理ListBox
的DrawItem
事件来绘制指定color
的项目
注意:在下面的代码中,我正在用Green
试试这个:
int itemIndex = -1;
public Form1()
{
InitializeComponent();
this.listBox1.DrawItem += new
System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Graphics g = e.Graphics;
if(e.Index == itemIndex )
{
g.FillRectangle(new SolidBrush(Color.Green), e.Bounds);
}
else
{
g.FillRectangle(new SolidBrush(Color.White), e.Bounds);
}
ListBox lb = (ListBox)sender;
g.DrawString(listBox1.Items[e.Index].ToString(), e.Font,
new SolidBrush(Color.Black), new PointF(e.Bounds.X, e.Bounds.Y));
e.DrawFocusRectangle();
}
private void button1_Click(object sender, EventArgs e)
{
setcolor(int.Parse(textBox1.Text));
}
void setcolor(int index)
{
itemIndex = index;
listBox1.DrawMode = DrawMode.Normal;
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
}