如何在显示表单之前强制关注组件

phi*_*ext 8 delphi focus setfocus

我必须使用许多TEdit显示(使用showModal)一个Form,但是我想强制关注TEdit,但并不总是相同,具体取决于上下文.

我无法在ShowModal之前使用SetFocus(因为Form未激活)并且在我的应用程序中使用组件名称或标签不方便.你有好主意吗 ?

Dav*_*nan 19

在我看来,实现目标的最简单方法是ActiveControl为表单分配属性.您可以在显示表单之前执行此操作.当您稍后显示表单时,VCL框架将确保ActiveControl给定输入焦点.

文档:

如果表单没有焦点,ActiveControl则表单上的控件是在表单获得焦点时将获得焦点.