Devexpress gridcontrol更改选定的行颜色

时间:2012-02-16 07:46:59

标签: colors devexpress rows selected gridcontrol

我正在使用FormatConditions根据其属性格式化某些行。例如。我有一个有许多行的gridcontrol,当出现错误时,有些行会显示为红色。我遇到的问题是,当选择一行时,格式化将消失并变为蓝色。

我希望所选择的行颜色为该行的任何颜色的稍暗的颜色。即您仍然可以告诉该行被遮挡的颜色,但您也可以告诉它已被选中。

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

处理GridView.CustomDrawCell Event并获取当前Cell的状态,它是否属于所选行。

//获取单元格的状态 - e.Cell提供对当前单元格的绘制 -

 GridRowCellState state = ((GridCellInfo)e.Cell).State;

然后检查选定的行单元格

if ((state & GridRowCellState.Selected) == GridRowCellState.Selected)
{
// do your custrom drawing here.
// for example 
e.DisplayText = "";
e.Appearance.BorderColor = Color.White;
}

然后根据您的要求自定义绘制单元格后设置CustomDrawEventArgs.Handled Property - e.Handled = true or false;

浏览这些文档链接:
Custom Painting Basics
Custom Painting Samples

答案 1 :(得分:1)

我相信您需要通过处理GridView.CustomDrawCell事件手动执行此操作,并根据当前行状态设置行颜色。如果内存正确地为我服务,您应该检查RowCellCustomDrawEventArgs.Cell属性以获取行状态信息。

根据您的问题,您只需要在选择行时修改行为,这样您就可以跳过自定义绘图(设置e.Handled=False),如果未选择行并且您的现有功能将继续保持不变。