对于应用程序中的所有表单,我需要跟踪它们何时获得和失去焦点。我尝试使用Form.GotFocus和Form.LostFocus,但这些事件是用于文本框等特定控件的,因此在嵌套控件获得焦点时不起作用。然后,我尝试订阅所有Form.Controls中的GotFucus,但这并不可靠,因为它只适用于一些子控件。注意:修改表单不是一个选项。
Form.GotFocus
Form.LostFocus
Form.Controls
GotFucus
wfypjpf41#
当您说“保持跟踪”时,您的意思是希望在窗体之间的焦点发生变化时专门执行函数吗?如果是这样,为什么不试试这个:
myForm.TopLevel = true // or false
对于一个窗体,将其设置为true将强制焦点集中在该窗体上,在此期间您可以执行所需的功能,然后可以再次将其设置为false,或者对于另一个窗体将其设置为true。但是,这确实意味着您需要以这样的方式显示窗体,即“TopLevel”不会阻碍后面的窗体。
1条答案
按热度按时间wfypjpf41#
当您说“保持跟踪”时,您的意思是希望在窗体之间的焦点发生变化时专门执行函数吗?
如果是这样,为什么不试试这个:
对于一个窗体,将其设置为true将强制焦点集中在该窗体上,在此期间您可以执行所需的功能,然后可以再次将其设置为false,或者对于另一个窗体将其设置为true。
但是,这确实意味着您需要以这样的方式显示窗体,即“TopLevel”不会阻碍后面的窗体。