![]() |
1
1
恐怕这是唯一的选择。WinForms有时在其API中有一些恼人的漏洞。我没有检查,但如果containsFocus只是容器控件的控件树的递归遍历,以查看是否有任何控件具有焦点,我不会感到惊讶。 拥有大量的事件处理程序并不是什么大问题,而是引发了许多改变UI元素的事件。您可以通过对可添加的控件进行子类化来解决这个问题(但我不确定是否必须允许所有控件或只允许一个子集),并将面板传递给添加的控件,以便控件在获得/失去焦点时调用面板。但这也需要做大量的工作,而且将代码放在面板中类似观察者的模式更容易实现。 |
![]() |
2
7
好像在用 进入 和 离开 事件就是答案。gotfocus将只发送到获得焦点的特定控件,而enter事件也将发送到获取gotfocus事件的控件的父控件(和祖先控件)。 从 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.leave.aspx
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |