3

我正在使用 FormatConditions 根据它们的属性来格式化某些行。例如,我有一个带有许多行的网格控件,当出现错误时,有些行会显示为红色。The issue I have is that when a row is selected, the formatting disappears and goes blue.

我希望选定的行颜色比该行的颜色稍微深一点。即您仍然可以知道该行的阴影是什么颜色,但您也可以知道它已被选中。

最好的方法是什么?

4

2 回答 2

2

处理GridView.CustomDrawCell 事件并获取当前 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 属性-e.Handled = true or false;根据您的要求自定义绘制单元格后。

浏览这些文档链接:
自定义绘画基础
自定义绘画样本

于 2012-02-21T09:25:24.387 回答
1

我相信您需要通过处理GridView.CustomDrawCell事件并根据当前行状态设置行颜色来手动执行此操作。如果我没记错的话,您应该检查RowCellCustomDrawEventArgs.Cell属性以获取行状态信息。

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

于 2012-02-16T08:36:15.493 回答