如何在显示表单之前强制将焦点集中在组件上

10

我需要使用ShowModal方法显示一个包含多个TEdit的表单,但我想强制将焦点设置在TEdit上,但具体哪个TEdit取决于上下文。

我不能在ShowModal之前使用SetFocus(因为表单未激活),而使用组件的NameTag并不方便我的应用程序。你有什么想法吗?

1个回答

21
在我看来,实现您的目标最简单的方法是为表单分配 ActiveControl 属性。您可以在显示表单之前这样做。当表单稍后显示时,VCL框架将确保 ActiveControl 获得输入焦点。
根据文档:
如果表单没有焦点,则ActiveControl是表单上将在表单获得焦点时接收焦点的控件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接