- 获取当前焦点所在的控件.
- .Net本身没有该API.必须使用Win32 API解决.
- internal static extern IntPtr GetFocus();
- Control focusedControl = Control.FromHandle(GetFocus());
- 判断控件是否含有焦点.
- Focused属性获取Control本身是否含有焦点.
- ContainsFocus属性用以判断Control本身以及其子控件是否含有焦点.
- Select()/Focus()方法
- 在初始化时,如果想选中某个控件.
- 在New()/Load事件中使用focus()是不可以的.因为控件还没有加载完毕.
- 在New()/Load事件中,使用Select()方法可以.
- 或者将该控件的TabIndex设置为0.
- 关于不可见控件.
- 使用Focus()方法无效.直接返回false.
- 使用Select(),会递归向上寻找父Control,直到某一层的父Control可以被选中.那么选中之.
- 关于不可选中控件.
- MSDN中,举出了Selectable为false,也就是所谓不可选中的控件的列表.这里我们使用Label作实验.得出的结果很是诡异,并且跟MSDN中不一致.
- 在Load事件/New()中,Select()/Focus()方法都是无效的.
- 在系统加载完毕后(如一个Button的点击事件中).使用Select()/Focus()方法都可以将焦点置于Label之上.此时调用系统API的GetFocus()时,得到的焦点控件是Label.但是,重点是,其Focused/ContainsFocus属性都是False.
posted @
2013-12-09 17:05
robynhan
阅读(
325)
评论()
编辑
收藏
举报