加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:28:20 所属栏目:大数据 来源:网络整理
导读:我有我的自定义类扩展TEdit: TMyTextEdit = class (TEdit) private fFocusNextOnEnter: Boolean; public procedure KeyUp(var Key: Word; Shift :TShiftState); override; published property FocusNextOnExnter: Boolean read fFocusNextOnEnter write fFo
我有我的自定义类扩展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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读