winforms 窗体获得焦点时启动函数,不修改窗体

9jyewag0  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(170)

对于应用程序中的所有表单,我需要跟踪它们何时获得和失去焦点。
我尝试使用Form.GotFocusForm.LostFocus,但这些事件是用于文本框等特定控件的,因此在嵌套控件获得焦点时不起作用。
然后,我尝试订阅所有Form.Controls中的GotFucus,但这并不可靠,因为它只适用于一些子控件。
注意:修改表单不是一个选项。

wfypjpf4

wfypjpf41#

当您说“保持跟踪”时,您的意思是希望在窗体之间的焦点发生变化时专门执行函数吗?
如果是这样,为什么不试试这个:

myForm.TopLevel = true // or false

对于一个窗体,将其设置为true将强制焦点集中在该窗体上,在此期间您可以执行所需的功能,然后可以再次将其设置为false,或者对于另一个窗体将其设置为true。
但是,这确实意味着您需要以这样的方式显示窗体,即“TopLevel”不会阻碍后面的窗体。

相关问题