0

Dev Express グリッド テーブル ビューの内部には、ビジュアル フォームから maskedit (プロパティ) として定義された境界列 (文字列型) があります。(デザイン、DeveloperExpressGrid)。

視覚的なフォームから編集マスクを定義すると、正常に機能します。

私が望むのは、列全体ではなく、各レコードに固有の編集マスクを定義することです。そのため、columnPropertiesChange イベントでコード側から editmask プロパティにアクセスしようとしています。

問題は、コードから呼び出すと、column.property が CustomEdit であるため、editmask プロパティがないことです。

コードの背後から editmask プロパティにアクセスする方法はありますか?

4

1 に答える 1

2

デフォルトのエディターは TcxCustomMaskEdit であるため、ビューのイベントを使用してInitEdit、パラメーターとして指定された AEdit のマスクを変更できます。必要な列は、データバインディングに応じて、Sender.DataController を介して行を見つけることができる AItem.Index から解決される場合があります。

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 に答える