1

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

在此处输入图像描述

4

2 回答 2

3

参考:DevExpress 支持线程 - 更改 ListBox 中的 FocusedColor

要获得所需的结果,请处理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 搜索结果

于 2013-03-05T06:38:59.823 回答
2

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

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

在此处输入图像描述

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

然后设置你想要的颜色:

在此处输入图像描述

视频展示了它是如何对 XtraGrid 进行的 - 但该原理仍然可以应用于列表框。

编辑 如果您需要更改高亮颜色 - 移除皮肤(如图所示)并使用 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;

于 2013-03-05T06:54:21.257 回答