如何在cxGrid列中使复选框变灰

时间:2011-10-03 07:02:17

标签: delphi devexpress delphi-7

在cxGrid中,我有一个属性为Options.Editing:=False; Properties:=CheckBox的列。因此,用户无法更改复选框的状态。但是复选框仍然具有自定义颜色,用户看不到他无法编辑它们。

如何在cxGrid列中使复选框变灰,哪一个无法编辑?

4 个答案:

答案 0 :(得分:4)

您可以使用OnCustomDrawCell事件来绘制禁用的复选框。

退房:http://www.devexpress.com/Support/Center/p/Q253981.aspx

答案 1 :(得分:2)

您可以在网格视图上创建一个OnCustomDrawCell事件,例如:

if not AViewInfo.Item.Options.Editing then
  ACanvas.Brush.Color := clGray;

答案 2 :(得分:1)

不可编辑的列不会变为灰色。这适用于各种编辑器,无论是复选框,短信还是其他。该复选框有一个NullStyle属性,可以设置为nssGrayedChecked,但这只会显示为NULL值。

但是你还有其他一些选择。最简单的可能是将列设置为不可聚焦,以及不可编辑(Options.Focusing = false)。这可能会让您的用户更容易理解为什么他们无法更改价值。第二个最简单的选择是使用以某种方式表示禁用/不可编辑列的自定义样式,例如通过具有灰色背景颜色。

答案 3 :(得分:0)

使用cxStyleRepository

<TcxGridDbColumn>.styles.Content