delphi – 聚焦下一个控制输入 – 覆盖的KeyUp

前端之家收集整理的这篇文章主要介绍了delphi – 聚焦下一个控制输入 – 覆盖的KeyUp前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有我的自定义类扩展TEdit:
TMyTextEdit = class (TEdit)
   private
     fFocusNextOnEnter: Boolean;
   public
    procedure KeyUp(var Key: Word; Shift :TShiftState); override;
   published
     property FocusNextOnExnter: Boolean read fFocusNextOnEnter
                                 write fFocusNextOnEnter default false;
  end;

在KeyUp过程中我做:

procedure TMyTextEdit.KeyUp(var Key: Word; Shift: TShiftState);
begin
  inherited;

  if FocusNextOnExnter then
    if Key = VK_RETURN then 
      SelectNext(Self as TWinControl,True,false);
end;

但它并没有转移到下一个控件的焦点.我尝试过了

if Key = VK_RETURN then
      Key := VK_TAB;

但它也不工作.我失踪了什么

解决方法

SelectNext选择下一个兄弟姐妹控制,即.您需要在编辑的父母上调用它:
type
  THackWinControl = class(TWinControl);

if Key = VK_RETURN then
  if Assigned(Parent) then
    THackWinControl(Parent).SelectNext(Self,False);
原文链接:https://www.f2er.com/delphi/101350.html

猜你在找的Delphi相关文章