zoukankan      html  css  js  c++  java
  • 关于捕获键盘信息的processDialogkey方法2--具体应用

    自定义控件里的keydown方法无法捕获所有的按键消息的处理方法1(自定义控件里的keydown方法无法获取的键值如上下左右键等)

    处理办法具体如下:

    1、首先在自定义控件UserControl1中重写ProcessDialogKey方法

     自定义控件UserControl1中重写ProcessDialogKey方法代码如下:       

      protected override bool ProcessDialogKey(Keys keyData)
            {
                if (keyData == Keys.Space || keyData == Keys.Up 
                    || keyData == Keys.Down || keyData == Keys.Left 
                    || keyData == Keys.Right) 
                {
                    MessageBox.Show(keyData.ToString(), "提示");
                    //SendKeys.Send(keyData.ToString());
                    return false;
                }
                return base.ProcessDialogKey(keyData);
            }

    这时自定义控件里的keydown事件里面就可以获得上下左右键了

    代码如下:

     private void UserControl1_KeyDown(object sender, KeyEventArgs e)
            {
                MessageBox.Show("提示11111111", e.KeyCode.ToString() + e.KeyData.ToString() + e.KeyData.ToString());
            }

    2、如果新建窗体TestForm添加自定义控件UserControl1,想在窗体中响应TestForm窗体的TestForm_KeyDown事件,那又该怎么办呢???

    继续往下看,步骤3中设置TestForm窗体的KeyPreview的属性为true属性即可

    3、设置TestForm窗体的KeyPreview的属性为true(这个至关重要!!!)

    然后TestForm窗体的TestForm_KeyDown事件就可以获取键值了

    代码如下

           private void TestForm_KeyDown(object sender, KeyEventArgs e)
            {
                MessageBox.Show("提示", e.KeyCode.ToString());
            }

  • 相关阅读:
    SpringBoot集成Swagger2中不同环境开关配置
    mysql
    pip 命令汇总
    mysql 时间查询(当天、本周,本月,上一个月的数据)
    MYSQL 常用函数
    java8 array、list操作 汇【6】)- Java8 Lambda表达式增强版Comparator和排序
    解决pip安装超时的问题
    Java对象为空时,将null转换为"" 保存值为空的属性
    mysql -- 模糊查询的四种方法
    Mysql 查询以某个字符开头的语句
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5580798.html
Copyright © 2011-2022 走看看