程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#處理鼠標和鍵盤事件(3)

C#處理鼠標和鍵盤事件(3)

編輯:關於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"事件的語法如下:

"組件名稱"."事件名稱"+= 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)和此代碼運行後的界面:

圖02:用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 ( ) , "您所按動的健為:" ) ;
}
}

四.總結:

本文介紹了在C#中如何定義和鼠標和鍵盤相關的事件和在這些事件中一些典型問題的處理辦法。雖然這些知識最為基本,但也最為重要,因為在程序設計中,這些問題和我們打交道的機會最多。當然和鼠標和鍵盤相關的事件和問題還有許多,可以參照根據上面的解決辦法加以解決。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved