【发布时间】:2013-10-24 01:16:48
【问题描述】:
我有一个 TFrame 后代的问题,当用户在框架中切换时,框架本身接收焦点而不是框架上的第一个控件。
是否知道用户是否进入框架与用户实际点击框架内的组件?
我已经实现了 OnEnter 事件,并且可以将焦点设置到第一个控件,但这可能会将焦点从用户单击的控件(在框架上)移动。
【问题讨论】:
-
框架不应作为制表位获得焦点。您是否正确设置了表单的标签顺序?
TFrame.TabStop还是False(默认)吗?我刚刚做了一个快速测试,在新表单上使用TEdit,在新表单上使用TFrame和单个TEdit,将表单的ActiveControl设置为它自己的编辑控件,将选项卡顺序设置为表单的 TEdit 然后是框架,然后运行它。我可以在两个编辑(一个在表单上,一个在框架上)之间反复切换,而在框架之间没有停止。 -
您是否尝试过将框架的 TabStop 属性设置为 False,同时为框架内的控件保留 TabStop = True?我认为这样当用户进入框架时,焦点将由具有最低 TabOrder 值的子控件接收......或者我对你的情况的理解可能遗漏了一些东西。
标签: delphi