它似乎使用 Windows 设置中的默认颜色,默认情况下为蓝色。 假设我想将其永久更改为红色。我正在使用 Winforms。
提前致谢。
最佳答案
您必须覆盖 Drawitem
事件并设置 DrawMode
属性为DrawMode.OwnerDrawFixed
检查这个样本
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index<0) return;
//if the item state is selected them change the back color
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
e = new DrawItemEventArgs(e.Graphics,
e.Font,
e.Bounds,
e.Index,
e.State ^ DrawItemState.Selected,
e.ForeColor,
Color.Yellow);//Choose the color
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Draw the current item text
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}
关于c# - 如何更改列表框选择背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663704/