Delphi:如何使ENTER键在TFrame中用作TAB键
发布时间:2020-12-15 09:08:53 所属栏目:大数据 来源:网络整理
导读:我有一个框架和一些控件(编辑,按钮等).如何拦截在帧控件上任意位置按ENTER键并转换为TAB键(考虑SHIFT状态)? 解决方法 下面是一些示例代码,用于处理框架上的消息,以便在按下Enter时能够导航到下一个控件.请注意,此示例不会修改Enter键以成为Tab键.相反,它选
我有一个框架和一些控件(编辑,按钮等).如何拦截在帧控件上任意位置按ENTER键并转换为TAB键(考虑SHIFT状态)?
解决方法
下面是一些示例代码,用于处理框架上的消息,以便在按下Enter时能够导航到下一个控件.请注意,此示例不会修改Enter键以成为Tab键.相反,它选择下一个控件并阻止进一步处理按键消息.
另请注意,代码可能需要进一步调整.一个用于,如果任何控件实际需要处理Enter键,例如TMemo,则需要添加异常.其次,导航被包裹在帧中,即在最后一帧控制之后,第一帧控制被聚焦 – 不是对表格的控制而不是对帧的控制.对于这些,您可能希望为消息返回添加条件,如果您希望在某些条件下进行默认处理,只需调用inherited而不执行任何其他操作. type TFrame2 = class(TFrame) ... protected procedure CMChildKey(var Message: TCMChildKey); message CM_CHILDKEY; end; .. procedure TFrame2.CMChildKey(var Message: TCMChildKey); begin if Message.CharCode = VK_RETURN then begin SelectNext(Screen.ActiveControl,not Bool(GetKeyState(VK_SHIFT) and $80),True); Message.Result := 1; end else inherited; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |