zoukankan      html  css  js  c++  java
  • winform学习之-----关于按键操作的一些小知识(如何获取焦点所在的当前控件)20160623

    1、设置整个窗体keydown事件的时候,要设置keyPreview=true;

    2、获取当前拥有焦点的控件:

    关于这个问题,自己也是纠结死了,在网上搜了好多相关的问题答案,搜出的结果是:

    //API声明:获取当前焦点控件句柄      
            [DllImport("user32.dll")]
            public static extern int GetFocus();
            ///获取 当前拥有焦点的控件
            private string GetFocusedControl()
            {

                string focusedControl = null;
                IntPtr handle = (IntPtr)GetFocus();

                if (handle == null)
                    this.FindForm().KeyPreview = true;
                else
                {
                    Control c = Control.FromHandle(handle);//这就是
                    focusedControl =

    c.Parent.TopLevelControl.Name.ToString();
                }

                return focusedControl;

            }

    方法本身也没有问题,但是我的页面上用的当前控件刚好是引用的用户控件,使用此方法得出的结果是获得了原始的控件名字,不能用了。最好的获得方法就是: Control ctl = this.ActiveControl;

    这个ctl.name,就是你要获取的当前焦点所在的控件了~

  • 相关阅读:
    误删表空间处理办法
    一步步开发网站系列-网站界面
    webstorm ftp发布问题
    TP5接受Vue跨域请求
    tp5上传图片添加永久素材到微信公众号
    将博客搬至CSDN
    swoole http_server 多进程并使用多进程处理消息
    高并发下,php与redis实现的抢购、秒杀功能
    SVN服务器搭建
    web服务器安全笔记
  • 原文地址:https://www.cnblogs.com/candyzhmm/p/5612077.html
Copyright © 2011-2022 走看看