我正在使用 ListBox(来自 DevExpress)。如图所示,突出显示颜色为淡橙色 (?)。如何将其更改为蓝色或其他内容?
问问题
6707 次
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 回答