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

Posted 寒夜美美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,就是你要获取的当前焦点所在的控件了~

 

以上是关于winform学习之-----关于按键操作的一些小知识(如何获取焦点所在的当前控件)20160623的主要内容,如果未能解决你的问题,请参考以下文章

原iOS学习之应用之间的操作

Python学习之Web开发及图形用户界面模块

winform学习之----进程和线程

嵌入式开发学习之--按键检测

嵌入式开发学习之--抢答器

winform学习之----打开文件对话框并将文件内容放入文本框