Csharp/C#教程:深入分析C#中处理和键盘相关事件的详解分享

在C#中和键盘相关的事件相对比较少,大致就三种:”KeyDown”、”KeyUp”和”KeyPress”。
(1).如何在C#程序中定义这些事件:
C#中描述”KeyDown”、”KeyUp”的事件的Delegate是”KeyEventHandler”。而描述”KeyPress”所用的Delegate是”KeyPressEventHandler”。这二个Delegate都被封装在命名空间”Syetem.Windows.Froms”中。为”KeyDown”、”KeyUp”的事件提供数据的类是”KeyEventArgs”。而为”KeyPress”事件提供数据的类是”KeyPressEventArgs”。同样这二者也被封装在命名空间”Syetem.Windows.Froms”中。
在C#程序定义”KeyDown”、”KeyUp”事件的语法如下:
“组件名称”.”事件名称”+=newSyetem.Windows.Froms.KeyEventHandler(”事件名称”);
下面是程序中具体实现代码:
代码如下:
button1.KeyUp+=newSyetem.Windows.Froms.KeyEventHandler(button1_KUp);

下面是响应上面事件的基本结构。
代码如下:
privatevoidbutton1_KUp(objectsender,Syetem.Windows.Froms.KeyEventArgse)
{
此处加入响应此事件的代码
}
在C#程序定义”KeyPress”事件的语法如下:
“组件名称”.”事件名称”+=newSyetem.Windows.Froms.KeyPressEventHandler(”事件名称”);

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

在完成了事件的定义以后,就要在程序中加入响应此事件的代码,否则程序编译的时候会报错。下面是响应上面事件的基本结构。
代码如下:
privatevoidbutton1_KPress(objectsender,Syetem.Windows.Froms.KeyPressEventArgse)
{
此处加入响应此事件的代码
}
注释:程序中出现的”button1″是定义的一个按钮组件。
(

(2).和键盘相关事件中的典型问题处理办法:
和键盘相关的典型问题无非就是判定到底是哪个按键被按动。通过上面的三个事件都可以完成。并且在”KeyEventArgs”类中通过了一个属性”KeyCode”,可以用他来读取当前按键。所以就在”KeyUp”或者”KeyDown”事件中处理这个问题。根据上面这些知识,可以得到用C#编写读取读取按键的程序代码,下面就是此代码(key.cs)和此代码运行后的界面: 
图02:用C#读取键盘按键的程序运行界面
key.cs的代码如下:
代码如下:
代码
 usingSystem;
 usingSystem.Drawing;
 usingSystem.Collections;
 usingSystem.ComponentModel;
 usingSystem.Windows.Forms;
 usingSystem.Data;
 publicclassForm1:Form
 {
 privateSystem.ComponentModel.Containercomponents=null;
 publicForm1()
 {
 file://初始化窗体中的各个组件
 InitializeComponent();
 }
 protectedoverridevoidDispose(booldisposing)
 {
 file://清除程序中使用过的资源
 if(disposing)
 {
 if(components!=null)
 {
 components.Dispose();
 }
 }
 base.Dispose(disposing);
 }
 privatevoidInitializeComponent()
 {
 this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);
 this.ClientSize=newSystem.Drawing.Size(292,273);
 this.Name=”Form1″;
 this.Text=”C#处理键盘事件!”;
 file://为按键的按动定义一个事件处理过程”Form1_KeyUp”
 this.KeyUp+=newKeyEventHandler(this.Form1_KeyUp);
 }
 staticvoidMain()
 {
 Application.Run(newForm1());
 }
 file://显示你所按动的按键名称
 privatevoidForm1_KeyUp(objectsender,KeyEventArgse)
 {
 MessageBox.Show(e.KeyCode.ToString(),”您所按动的健为:”);
 }
 }
 上面都是网上找的,我看了之后,自己试了很多次,按键没反应……
 后来才在书上找到,原来要先把对应的form的KeyPreview属性设为tr ue
 C#codethis.KeyPreview=true;this.KeyDown+=newKeyEventHandler(frmNewBook_KeyDown);
        }voidfrmNewBook_KeyDown(objectsender,KeyEventArgse)
        {switch(e.KeyData)
            {caseKeys.F4:
                    Console.WriteLine(“楼主给点分吧”);break;//………}
        }

您可能感兴趣的文章:C++处理键盘输入的方法C程序读取键盘码的方法C#中winform实现自动触发鼠标、键盘事件的方法基于C#实现的HOOK键盘钩子实例代码C#键盘Enter键取代Tab键实现代码键盘KeyCode值列表汇总c#Form中的键盘响应具体实现思路C#Hook钩子实例代码截取键盘输入C#Winform实现屏蔽键盘的win和alt+F4的实现代码关于键盘事件中keyCode、which和charCode的兼容性测试简单获取键盘的KeyCodeC++键盘记录程序代码

标签: 事件

Cocos2d-x触摸事件实例

Cocos2d-x人物动作类实例

上述就是C#学习教程:深入分析C#中处理和键盘相关事件的详解分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/904776.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐