Как сделать флажки серыми в столбце cxGrid - PullRequest
0 голосов
/ 03 октября 2011

В cxGrid у меня есть столбец со свойством Options.Editing:=False; Properties:=CheckBox.Таким образом, пользователь не может изменить состояние флажков.Но флажки по-прежнему имеют собственный цвет, и пользователь не видит, что он не может их редактировать.

Как сделать флажки серыми в столбце cxGrid, который нельзя редактировать?

Ответы [ 4 ]

4 голосов
/ 03 октября 2011

Вы можете использовать событие OnCustomDrawCell, чтобы нарисовать отключенный флажок.

Выезд: http://www.devexpress.com/Support/Center/p/Q253981.aspx

2 голосов
/ 03 октября 2011

Вы можете сделать событие OnCustomDrawCell в виде сетки с чем-то вроде:

if not AViewInfo.Item.Options.Editing then
  ACanvas.Brush.Color := clGray;
1 голос
/ 03 октября 2011

Столбцы, которые нельзя редактировать, не станут серыми.Это относится ко всем видам редакторов, будь то флажки, текстовые сообщения или что-то еще.Флажок имеет свойство для NullStyle, которое может быть установлено в nssGrayedChecked, но это будет отображаться только для значений NULL.

У вас есть и другие варианты.Простейшим может быть указание на столбец, который нельзя сфокусировать, а также нельзя редактировать (Options.Focusing = false).Это, возможно, облегчит вашим пользователям понимание того, почему они не могут изменить значение.Второй самый простой вариант - использовать собственный стиль, который каким-то образом указывает на отключенный / нередактируемый столбец, например, имея серый фоновый цвет.

0 голосов
/ 03 октября 2011

Использовать cxStyleRepository

<TcxGridDbColumn>.styles.Content
...