• 获取当前焦点所在的控件.

    • .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.

Focus相关点滴的更多相关文章

  1. 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件

    [源码下载] 背水一战 Windows 10 (68) - 控件(控件基类): UIElement - Pointer 相关事件, Tap 相关事件, Key 相关事件, Focus 相关事件 作者: ...

  2. findFocus-获得拥有焦点的控件

    所有的view控件有一个findFocus方法,这个方法如下 /** * Find the view in the hierarchy rooted at this view that current ...

  3. 你知道吗,Flutter内置了10多种Button控件

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我 ...

  4. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

  5. BootStrap 关于input与btn的点击focus取消特效相关css

    取消btn按钮点击出现的外边框: .btn:focus, /*清除btn按钮点击出现的边框*/.btn:active:focus,.btn.active:focus,.btn.focus,.btn:a ...

  6. android 点滴记录 ICCID IMSI IMEI MEID 关系 和 区别,相关参数在什么情况下可以获取...

    1:ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXX ...

  7. JPA相关知识点滴--持续更新中.....

    Java 持久化(JPA)  •Java EE 5 在EJB 3.0 中包含JPA 1.0 •参考实现:TopLink Essentials •Java EE 6 包含JPA 2.0 •参考实现:Ec ...

  8. C++ 与 CDC相关的知识,点滴总结

    hdc = GetDC (hwnd) ; GetDc函数:用于获得hWnd参数所指定窗口的客户区域的一个设备环境. 所获得的设备环境可以是通用.类或者私有类型,具体由指定窗口的类风格决定.对于通用设备 ...

  9. 模拟I2C协议学习点滴之程序相关定义

    由于主机和从机都会给数据线SDA发信号,比如主机先给SDA发送数据后,从机收到数据后发送应答信号将SDA拉低,故SDA类型设定为inout.而DATA设定为inout类型,是起到校验通信的作用(后续的 ...

随机推荐

  1. Android开发目录

    1.ADT下载地址整理 2.之前的Android项目报错,新建Android项目报错,代码中找不到错误解决方案 3.错误“Unexpected namespace prefix "xmlns ...

  2. 如何为Linux安装Go语言

    导读 Go 语言又称为 golang, 是由 Google 最初开发的一种开源编程语言,其在设计时就遵循了简单.安全和速度的 3 大原则.Go 语言具有多种调试.测试.分析和代码审查工具,如今 Go ...

  3. reactor官方文档译文(1)Reactor简介

    原文地址:http://projectreactor.io/docs/reference/ Reactor简介 Reactor是一个基础库,用在构建实时数据流应用.要求有容错和低延迟至毫秒.纳秒.皮秒 ...

  4. ARM指令系统

    转载自:http://cxb4224.blog.163.com/blog/static/191224151201110220325976/ ARM处理器的工作状态和工作模式 工作状态 ARM处理器一般 ...

  5. Puppet

    一个完整的自动化运维包括系统安装.配置管理.服务监控三个方面.那今天咱们大家一起来学习一下Puppet实际运维中的案例.仅供参考,欢迎大家提更多的意见! 一.应用背景 某公司新到500台服务器,需要安 ...

  6. Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  7. Spark installation for windows

    download spark from spark.apache.org download hadoop from hadoop.apache.org download hadoop.dll and ...

  8. 【Android 界面效果40】Android4.0-Fragment框架实现方式剖析(一)

    经过反复的学习对比,个人觉得带着问题学习新知是最有效的学习方式,因此文本就以提问的方式来讲述Fragment框架实现方式. 1.什么是Fragment? Fragment包含在Activity中,Fr ...

  9. iOS菜鸟总结1

    我从第一次接触OC,我觉得想要学好就必须有提前的知识的储备(比如c,java).这样就可更好了解面向对象的这一思想.学起来就不是很吃力了,本来OC就是比较难学的语言.工欲善其事,必先利其器,Xcode ...

  10. iOS UILable的一些用法

    1.按钮上的文字添加下划线 问题:实现下图中右侧的按钮文字效果 代码(绿色为按钮文字加下划线方法): [MyTools createMyImageview:topEditView frame:CGRe ...