日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#键盘事件处理

發(fā)布時(shí)間:2024/9/20 C# 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#键盘事件处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果你希望用戶按F1彈出chm幫助,代碼如下:
private?void?FrmMain_Load(object?sender,?EventArgs?e)
{
????this.KeyPreview?=?true;//獲取或設(shè)置一個(gè)值,該值指示在將鍵事件傳遞到具有焦點(diǎn)的控件前,窗體是否將接收此鍵事件。
}

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

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

鍵盤事件是在用戶按下鍵盤上的一個(gè)鍵的時(shí)候發(fā)生的,可分為兩類。第一類是KeyPress事件,當(dāng)按下的鍵表示的是一個(gè)ASCII字符的時(shí)候就會(huì)觸發(fā)這類事件,可通過他的KeyPressEventArgs類型參數(shù)的屬性KeyChar來確定按下的鍵的ASCII。使用KeyPress時(shí)間無法判斷是否按下了修改鍵(Shift,AltCtrl),為了判斷這些動(dòng)作,就要處理KeyUp?KeyDown事件,這些時(shí)間組成了第二類事件。該類事件有一個(gè)KeyEventsArgs類型參數(shù),通過該參數(shù)可以測(cè)試是否按下了一些修改鍵。

1.?????? KeyPressEventArgs類的主屬性(KeyPress事件的一個(gè)參數(shù)類型)
1.Handle屬性:用來獲取或設(shè)置一個(gè)值,該值指示是否處理過KeyPress事件。
2.KeyChar屬性:用來獲取按下的鍵對(duì)應(yīng)的字符,通常是該鍵的ASCII瑪(返回的是鍵盤的值,如按‘K‘返回就是K)。

2KeyEventArgs類的主屬性(KeyUpKeyDown事件的一個(gè)參數(shù))
1.Alt屬性:用來獲取一個(gè)值,該值提示是否曾按下了Alt
2.Control屬性:用來獲取一個(gè)值,該值提示是否曾按下了Crtl
3.Shift屬性:用來獲取一個(gè)值,該值提示是否曾按下了Shift
4.Handle屬性:用來獲取一個(gè)值,該值提示是否曾處理過此事件
5.KeyCode屬性:以Keys枚舉值返回鍵盤鍵的鍵碼,該屬性不包含修改鍵信息,用于測(cè)試指定的鍵盤鍵
6.KeyData屬性:以Keys枚舉值返回鍵盤鍵的鍵碼,該屬性包含修改鍵信息,用于判斷按下鍵的所有信息(可返回組合鍵)
7.KeyValue屬性:以整數(shù)形式返回鍵碼,而不是Keys枚舉類型值。用于獲得所按下鍵的數(shù)字表示
8.Modifiers屬性:以Keys枚舉值返回所按下的修改鍵,僅判斷修改鍵的信息

3.如何在C#程序中定義這些事件:
  C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。而描述"KeyPress"所用的Delegate是"KeyPressEventHandler"。這二個(gè)Delegate都被封裝在命名空"Syetem.Windows.Froms"中。為"KeyDown"、"KeyUp"的事件提供數(shù)據(jù)的類是"KeyEventArgs"。而為"KeyPress"事件提供數(shù)據(jù)的類是"KeyPressEventArgs"。同樣這二者也被封裝在命名空間"Syetem.Windows.Froms"中。

  在C#程序定義"KeyDown"、"KeyUp"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyEventHandler("事件名稱");

  下面是程序中具體實(shí)現(xiàn)代碼:
button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp);

  下面是響應(yīng)上面事件的基本結(jié)構(gòu)。
private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e )
{
此處加入響應(yīng)此事件的代碼
}

  在C#程序定義"KeyPress"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名稱");

  下面是程序中具體實(shí)現(xiàn)代碼:
button1. KeyPress += new Syetem.Windows.Froms. KeyPressEventArgs(button1_KPress);

  在完成了事件的定義以后,就要在程序中加入響應(yīng)此事件的代碼,否則程序編譯的時(shí)候會(huì)報(bào)錯(cuò)。下面是響應(yīng)上面事件的基本結(jié)構(gòu)。
private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e )
{
此處加入響應(yīng)此事件的代碼
}?
注釋:程序中出現(xiàn)的"button1"是定義的一個(gè)按鈕組件。

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

總結(jié)

以上是生活随笔為你收集整理的C#键盘事件处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。