我正在使用FormatConditions根据其属性格式化某些行。例如。我有一个有许多行的gridcontrol,当出现错误时,有些行会显示为红色。我遇到的问题是,当选择一行时,格式化将消失并变为蓝色。
我希望所选择的行颜色为该行的任何颜色的稍暗的颜色。即您仍然可以告诉该行被遮挡的颜色,但您也可以告诉它已被选中。
最好的方法是什么?
答案 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;
。
答案 1 :(得分:1)
我相信您需要通过处理GridView.CustomDrawCell
事件手动执行此操作,并根据当前行状态设置行颜色。如果内存正确地为我服务,您应该检查RowCellCustomDrawEventArgs.Cell
属性以获取行状态信息。
根据您的问题,您只需要在选择行时修改行为,这样您就可以跳过自定义绘图(设置e.Handled=False
),如果未选择行并且您的现有功能将继续保持不变。