|
|
1
2
看起来wm_setfocus消息没有通过….我的错。我很肯定他们会通过 Control.WndProc 方法。为了解决这个问题,我不得不求助于 GetFocus 每次有消息出现并存储具有焦点的控件的句柄。 第一个代码部分是筛选类,第二个代码部分是测试代码。
|
|
|
2
1
添加一个 IMessageFilter 和监视Windows消息,如 WM_SETFOCUS 或 WM_ACTIVATE . 你可以使用 Control.FromHandle 将Intprs转换为.NET控件。 |
|
|
3
1
找到一个更简单的方法-
|
|
|
4
0
您可以向项目中添加这样的类:
然后,对于您希望成为“最近焦点控制”候选的任何表单上的任何控件,您可以执行以下操作:
然后访问
您可以遍历每个窗体上的所有控件,并为gotfocus事件添加此处理程序,但确实有一些控件 不要 希望这样做(例如按钮)。您可以迭代并只添加文本框的处理程序。 |