如何跟踪焦点转移
C/S结构的程序,对于某个特定的窗体,我想实时的跟踪当前的焦点控件是什么?也就是说,当窗体上的焦点控件发生变化的时候,记录下来。
目前,我还没有很好的办法实现这一点儿,唯一的方法是在窗体load的时候,给所有的子控件增加事件响应函数,实际上是响应每个控件的enter事件,感觉不太爽,有没有其他的更好的方法呢?
问题点数:50、回复次数:7Top
1 楼wuyazhe(wyz&xyl)回复于 2006-05-02 09:51:30 得分 0
For Each ctl As Control In Me.Controls
If ctl.Focused Then
MessageBox.Show("当前获得焦点的控件是:" + ctl.Name)
Exit For
End If
NextTop
2 楼yinweihong()回复于 2006-05-02 14:36:29 得分 0
AccessibleObject.GetFocused 方法
检索具有键盘焦点的对象。
命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)
请自行检索MSDN
Top
3 楼zqone(zqone)回复于 2006-05-02 16:19:44 得分 0
谢谢楼上两位,不过我想问的是怎么能够实时的得到通知,也就是说,一旦焦点的状态发生变化,我的程序就会得到通知。
wuyazhe(我的宝贝叫阿刺)的方法我明白,但是似乎还不能满足我的要求。
yinweihong() 的方法没用过,我再研究研究。Top
4 楼YidingHe(机枪兵)回复于 2006-05-03 13:31:15 得分 0
好像没什么其他方法了。楼主要的不就是响应每个控件的Enter事件么?Top
5 楼zqone(zqone)回复于 2006-05-04 09:34:00 得分 0
我再想,From为什么没有提供一个事件,当自己的控件的焦点发生变化的时候,通知一下呢。Top
6 楼drk928(一起看斜阳)回复于 2006-05-06 08:52:37 得分 0
写好一个事件类.
在窗体的new里面加一个事件处理代码就行了.Top
7 楼zqone(zqone)回复于 2006-05-11 14:07:20 得分 0
楼上能说的详细点儿吗?不太明白……
多谢了。Top




