0

在 Dev Express 网格表视图内部,我有一个有界列(字符串类型),从视觉形式定义为 maskedit(属性)。(设计,DeveloperExpressGrid)。

如果我从视觉形式定义编辑掩码,它可以正常工作。

我想要的是为每条记录定义特定的编辑掩码,而不是为整个列。这就是为什么我尝试在 columnPropertiesChange 事件上从代码端访问 editmask 属性的原因。

问题是当我从代码中调用 column.property 是 CustomEdit,因此没有任何 editmask 属性。

有一种方法可以从代码后面访问 editmask 属性吗?

4

1 回答 1

2

由于默认编辑器是 TcxCustomMaskEdit,因此您可以使用InitEdit视图的事件来更改作为参数给出的 AEdit 的掩码。所需的列可能从 AItem.Index 解析,行可以通过 Sender.DataController 找到,具体取决于您的数据绑定。

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;
于 2013-12-03T11:59:08.620 回答