Focus相关点滴_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Focus相关点滴

Focus相关点滴

 2013/12/9 18:26:05  robynhan  博客园  我要评论(0)
  • 摘要:获取当前焦点所在的控件..Net本身没有该API.必须使用Win32API解决.internalstaticexternIntPtrGetFocus();ControlfocusedControl=Control.FromHandle(GetFocus());判断控件是否含有焦点.Focused属性获取Control本身是否含有焦点.ContainsFocus属性用以判断Control本身以及其子控件是否含有焦点.Select()/Focus()方法在初始化时,如果想选中某个控件.在New(
  • 标签:
  • 获取当前焦点所在的控件.
    • .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中,举出了class="input">Selectable为false,也就是所谓不可选中的控件的列表.这里我们使用Label作实验.得出的结果很是诡异,并且跟MSDN中不一致.
      • 在Load事件/New()中,Select()/Focus()方法都是无效的.
      • 在系统加载完毕后(如一个Button的点击事件中).使用Select()/Focus()方法都可以将焦点置于Label之上.此时调用系统API的GetFocus()时,得到的焦点控件是Label.但是,重点是,其Focused/ContainsFocus属性都是False.
上一篇: 创新思维的阻碍 下一篇: 深入浅出
  • 相关文章
发表评论
用户名: 匿名