![]() |
1
1
恐怕这是唯一的选择。WinForms有时在其API中有一些恼人的漏洞。我没有检查,但如果containsFocus只是容器控件的控件树的递归遍历,以查看是否有任何控件具有焦点,我不会感到惊讶。 拥有大量的事件处理程序并不是什么大问题,而是引发了许多改变UI元素的事件。您可以通过对可添加的控件进行子类化来解决这个问题(但我不确定是否必须允许所有控件或只允许一个子集),并将面板传递给添加的控件,以便控件在获得/失去焦点时调用面板。但这也需要做大量的工作,而且将代码放在面板中类似观察者的模式更容易实现。 |
![]() |
2
7
好像在用 进入 和 离开 事件就是答案。gotfocus将只发送到获得焦点的特定控件,而enter事件也将发送到获取gotfocus事件的控件的父控件(和祖先控件)。 从 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.leave.aspx
|
![]() |
NESHOM · 使用控制台应用程序的QDialog没有任务栏条目 6 年前 |
![]() |
SpaceDogCS · 无法强制关注输入 6 年前 |
![]() |
Yuda · 如何将焦点从文本区域移到文本区域之外? 7 年前 |
![]() |
Jean-Cédric Hamel · 模糊后无法聚焦回输入字段 7 年前 |
![]() |
shajan · 如何将焦点放在angular 2中的不同文本框上 7 年前 |