1

我有一个使用 TCombobox 的多个表单的项目,我想在焦点组合框收到回车时删除默认行为:

TCustomCombobox的 Keydown 中:

vkF4, vkReturn:
    DropDown;

问:如何删除所有表单的功能?

创建一个新的自定义控件来覆盖它意味着重新创建所有组合框需要做很多工作。

A:创建一个“冒名顶替者”子类:

发现一个重复的问题:Delphi subclass visual component and use it

我将此代码放在一个单元中,并将该单元放在我的表单的界面/用途中。

TCombobox = class(FMX.ListBox.TComboBox)
  protected
    procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState);override;
  end;

procedure TCombobox.KeyDown(var Key: Word; var KeyChar: System.WideChar;
  Shift: TShiftState);
begin
  if key=vkReturn then exit;
  inherited;
end;
4

0 回答 0