DotNet · 2022年3月9日

Winform中键盘事件

键盘相关的事件相对比较少,大致就三种:”KeyDown”、”KeyUp”和”KeyPress”。
 
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″是定义的一个按钮组件。

(2).和键盘相关事件中的典型问题处理办法:

和键盘相关的典型问题无非就是判定到底是哪个按键被按动。通过上面的三个事件都可以完成。并且在”KeyEventArgs”类中通过了一个属性”KeyCode”,可以用他来读取当前按键。所以就在”KeyUp”或者
“KeyDown”事件中处理这个问题。根据上面这些知识,可以得到用C#编写读取读取按键的程序代码,下面就是此代码(key.cs)和此代码运行后的界面:

using System ;

using System.Drawing ;

using
System.Collections ;

using System.ComponentModel ;

using
System.Windows.Forms ;

using System.Data ;

public class
Form1 : Form

{

private System.ComponentModel.Container
components = null ;

public Form1 ( )

{

file://初始化窗体中的各个组件

InitializeComponent ( ) ;

}

protected override
void Dispose ( bool disposing )

{

file://清除程序中使用过的资源

if ( disposing )

{

if ( components != null )

{

components.Dispose ( ) ;

}

}

base.Dispose ( disposing ) ;

}

private void
InitializeComponent ( )

{

this.AutoScaleBaseSize = new
System.Drawing.Size ( 6 , 14 ) ;

this.ClientSize = new
System.Drawing.Size ( 292 , 273 ) ;

this.Name = “Form1” ;

this.Text = “C#处理键盘事件!” ;

file://为按键的按动定义一个事件处理过程”Form1_KeyUp”

this.KeyUp += new
KeyEventHandler ( this.Form1_KeyUp ) ;

}

static void Main ( )

{

Application.Run ( new
Form1 ( ) ) ;

}

file://显示你所按动的按键名称

private void
Form1_KeyUp ( object sender , KeyEventArgs e )

{

MessageBox.Show ( e.KeyCode.ToString ( ) , “您所按动的健为:” ) ;

} }

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞