在Dev Express网格表视图中,我有一个有界列(字符串类型),从视觉形式定义为maskedit(属性)。 (Design,DeveloperExpressGrid)。
如果我从可视化表单定义编辑掩码,它就可以正常工作。
我想要的是定义特定于每条记录的编辑掩码,而不是整个列。 这就是我尝试从columnPropertiesChange事件的代码端访问editmask属性的原因。
问题是当我从代码调用时,column.property是CustomEdit,因此没有任何editmask属性。
有一种方法可以从代码后面访问editmask属性吗?
答案 0 :(得分:2)
您可以使用视图的InitEdit
事件更改作为参数给出的AEdit的掩码,因为默认编辑器是TcxCustomMaskEdit。可以从AItem.Index解析所需的列,可以通过Sender.DataController找到Row,具体取决于您的数据绑定。
procedure TForm3.cxGrid1DBTableView1InitEdit(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit);
begin
if AEdit is TcxCustomMaskEdit then // default editor if no other editor defined
begin
// your condition for row and column (here just toggeling)
if ( Sender.DataController.FocusedRecordIndex AND 1) = 1 then
TcxCustomMaskEdit(AEdit).Properties.EditMask := '###..####'
else
TcxCustomMaskEdit(AEdit).Properties.EditMask := '******';
end;
end;