zoukankan      html  css  js  c++  java
  • C#键盘事件处理

    如果你希望用户按F1弹出chm帮助,代码如下:
    private void FrmMain_Load(object sender, EventArgs e)
    {
        this.KeyPreview = true;//获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。
    }

    private void FrmMain_KeyUp(object sender, KeyEventArgs e)
    {
        if (Keys.F1 == e.KeyCode)

        {
            //MessageBox.Show("您所按动的键是:" + e.KeyCode.ToString());
            Help.ShowHelp(this,@"C:\Users\HongYe\Desktop\RevitAPI.chm");
        }
    }

    键盘事件是在用户按下键盘上的一个键的时候发生的,可分为两类。第一类是KeyPress事件,当按下的键表示的是一个ASCII字符的时候就会触发这类事件,可通过他的KeyPressEventArgs类型参数的属性KeyChar来确定按下的键的ASCII。使用KeyPress时间无法判断是否按下了修改键(Shift,AltCtrl),为了判断这些动作,就要处理KeyUp KeyDown事件,这些时间组成了第二类事件。该类事件有一个KeyEventsArgs类型参数,通过该参数可以测试是否按下了一些修改键。

    1.       KeyPressEventArgs类的主属性(KeyPress事件的一个参数类型)
    1.Handle属性:用来获取或设置一个值,该值指示是否处理过KeyPress事件。
    2.KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII玛(返回的是键盘的值,如按‘K‘返回就是K)。

    2KeyEventArgs类的主属性(KeyUpKeyDown事件的一个参数)
    1.Alt属性:用来获取一个值,该值提示是否曾按下了Alt
    2.Control属性:用来获取一个值,该值提示是否曾按下了Crtl
    3.Shift属性:用来获取一个值,该值提示是否曾按下了Shift
    4.Handle属性:用来获取一个值,该值提示是否曾处理过此事件
    5.KeyCode属性:以Keys枚举值返回键盘键的键码,该属性不包含修改键信息,用于测试指定的键盘键
    6.KeyData属性:以Keys枚举值返回键盘键的键码,该属性包含修改键信息,用于判断按下键的所有信息(可返回组合键)
    7.KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键的数字表示
    8.Modifiers属性:以Keys枚举值返回所按下的修改键,仅判断修改键的信息

    3.如何在C#程序中定义这些事件:
      C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。而描述"KeyPress"所用的Delegate是"KeyPressEventHandler"。这二个Delegate都被封装在命名空"Syetem.Windows.Froms"中。为"KeyDown"、"KeyUp"的事件提供数据的类是"KeyEventArgs"。而为"KeyPress"事件提供数据的类是"KeyPressEventArgs"。同样这二者也被封装在命名空间"Syetem.Windows.Froms"中。

      在C#程序定义"KeyDown"、"KeyUp"事件的语法如下:
    "组件名称"."事件名称"+= new Syetem.Windows.Froms. KeyEventHandler("事件名称");

      下面是程序中具体实现代码:
    button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp);

      下面是响应上面事件的基本结构。
    private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e )
    {
    此处加入响应此事件的代码
    }

      在C#程序定义"KeyPress"事件的语法如下:
    "组件名称"."事件名称"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名称");

      下面是程序中具体实现代码:
    button1. KeyPress += new Syetem.Windows.Froms. KeyPressEventArgs(button1_KPress);

      在完成了事件的定义以后,就要在程序中加入响应此事件的代码,否则程序编译的时候会报错。下面是响应上面事件的基本结构。
    private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e )
    {
    此处加入响应此事件的代码

    注释:程序中出现的"button1"是定义的一个按钮组件。

    例子:
       private void Form1_KeyUp(object sender, KeyEventArgs e)
       {
        MessageBox.Show("您所按动的键是:"+e.KeyCode.ToString());
       }
    url:http://greatverve.cnblogs.com/archive/2012/05/15/KeyCode.html

  • 相关阅读:
    跨平台GUIQt windows 开发环境安装配置(Eclipse CDT+ MinGW+QT) (转载)
    跨平台GUIQt windows 开发环境安装配置(VS2005+QT+IntegrationPlugin)(转载)
    跨平台GUIQt ACER Aspire on Linux 开发环境安装配置(QT + GCC ) (原创)
    移动视频监控(2)原型开发Symbian客户端进展。
    编程语言大串联(1)C#,Java,C++
    优化页面上的sql
    一个段错误调试
    查询数据库空间
    shell 批量替换多个文件中字符串
    用户组相关
  • 原文地址:https://www.cnblogs.com/greatverve/p/KeyCode.html
Copyright © 2011-2022 走看看