- 获取当前焦点所在的控件.
- .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.
相关文章
- 03-14JS数组复习相关笔记
- 03-14myeclipse相关
- 03-14cocos2d CCLayer 触摸相关
- 03-14c指针点滴-指针与类型
- 03-14conda换源及创建环境等相关命令
- 03-14Python 元组tuple相关知识
- 03-14day40-线程相关
- 03-14反射相关
- 03-14基金登记过户系统相关
- 03-14【评测】iPS细胞相关实验服务机构-魔法师的仓库