我有一个cxGrid,可根据某些字段中的值更改某些字段的背景色。
这一切都很好。但是,如果我在网格数据中添加一些内容,则在关闭重新打开表单之前不会更新颜色。

如果记录发生更改,应调用什么程序来更新此记录?

最佳答案

以我的经验,当您切换行时,它确实会更新。但是我在DB模式下使用了TClientDataSet。

检查方法如


TcxControl.InvalidateRect
TcxControl.InvalidateRgn
TcxControl.InvalidateWithChildren


您还可以使节点无效:


TcxGrid.ActiveView.Invalidate;
TcxGrid.ViewData.Records [0] .Invalidate;
TcxGridViewData.Rows [0]。无效
TcxCustomGridTableController.FocusedRecord.Invalidate;


像这样的事件


TcxCustomGridTableViewStyles.OnGetContentStyle
TcxCustomGridTableItem.OnCustomDrawCell


还可以在参数之间或内部公开这些项目(及其Invalidate方法),例如


ARecord:TcxCustomGridRecord;
ViewInfo-> TcxGridTableCellViewInfo.GridRecord


换句话说-打开cxTL单元和grep以显示“ invalidate”(无效)单词并记下每个匹配项。

关于delphi - 在cxGrid中刷新颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12473687/

10-12 22:05