如何更改ListBox的突出显示颜色

时间:2013-03-04 18:54:34

标签: c# colors listbox devexpress highlight

我正在使用ListBox(来自DevExpress)。高亮颜色为浅橙色(?),如图所示。如何将其更改为蓝色或其他内容?

enter image description here

2 个答案:

答案 0 :(得分:3)

参考:DevExpress Support Thread - Change FocusedColor in ListBox

要获得所需的结果,请处理DrawItem事件,并在此事件处理程序中设置e.Appearance以获得所需的结果。

private void listBoxControl1_DrawItem(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e) {
    if(e.State == DrawItemState.Focus || e.State== DrawItemState.Selected) {
        e.Appearance.BackColor = Color.Red;
    }
}

如需更多帮助,请查看DevExpress Search results

答案 1 :(得分:2)

您需要先删除列表框的主题。

主题会覆盖您对Appereance属性所做的更改。

enter image description here

选择除“皮肤”值以外的任何内容 - 如果您需要覆盖颜色。

然后设置你想要的颜色:

enter image description here

this视频显示了如何对XtraGrid执行操作 - 但原则仍然可以应用于列表框。

修改 如果你需要改变highligt颜色 - 去掉皮肤(如图所示) 并使用DrawItem事件:

private void listBoxControl1_DrawItem(object sender, ListBoxDrawItemEventArgs e)
{
  if(e.State != (DrawItemState.Focus & DrawItemState.Selected))
  {
    e.Appearance.BackColor = Color.Blue;
  }
}

你需要设置listBox属性

this.listBoxControl1.HotTrackSelectMode = DevExpress.XtraEditors.HotTrackSelectMode.SelectItemOnClick;