欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入分析C#中處理和鍵盤相關(guān)事件的詳解

 更新時間:2013年05月20日 16:14:38   作者:  
本篇文章是對C#中處理和鍵盤相關(guān)的事件進行了詳細的分析介紹,需要的朋友參考下
在C#中和鍵盤相關(guān)的事件相對比較少,大致就三種:"KeyDown"、"KeyUp"和"KeyPress"。
(1).如何在C#程序中定義這些事件:
C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。而描述"KeyPress"所用的 Delegate是"KeyPressEventHandler"。這二個Delegate都被封裝在命名空 間"Syetem.Windows.Froms"中。為"KeyDown"、"KeyUp"的事件提供數(shù)據(jù)的類是"KeyEventArgs"。而 為"KeyPress"事件提供數(shù)據(jù)的類是"KeyPressEventArgs"。同樣這二者也被封裝在命名空 間"Syetem.Windows.Froms"中。
在C#程序定義"KeyDown"、"KeyUp"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyEventHandler("事件名稱");
下面是程序中具體實現(xiàn)代碼:
復制代碼 代碼如下:

button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp);

下面是響應上面事件的基本結(jié)構(gòu)。
復制代碼 代碼如下:

private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e )
{
此處加入響應此事件的代碼
}
在C#程序定義"KeyPress"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名稱");

下面是程序中具體實現(xiàn)代碼:
復制代碼 代碼如下:

button1. KeyPress += new Syetem.Windows.Froms. KeyPressEventArgs(button1_KPress);

在完成了事件的定義以后,就要在程序中加入響應此事件的代碼,否則程序編譯的時候會報錯。下面是響應上面事件的基本結(jié)構(gòu)。
復制代碼 代碼如下:

private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e )
{
此處加入響應此事件的代碼
}
注釋:程序中出現(xiàn)的"button1"是定義的一個按鈕組件。
(

(2).和鍵盤相關(guān)事件中的典型問題處理辦法:
和鍵盤相關(guān)的典型問題無非就是判定到底是哪個按鍵被按動。通過上面的三個事件都可以完成。并且在"KeyEventArgs"類中通過了一個屬 性"KeyCode",可以用他來讀取當前按鍵。所以就在"KeyUp"或者"KeyDown"事件中處理這個問題。根據(jù)上面這些知識,可以得到用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 ( ) , "您所按動的健為:" ) ;

 }
 }

 上面都是網(wǎng)上找的,我看了之后,自己試了很多次,按鍵沒反應......
 后來才在書上找到,原來 要先把對應的form 的KeyPreview屬性設(shè)為true
 C# codethis.KeyPreview=true;this.KeyDown+=newKeyEventHandler(frmNewBook_KeyDown);

         }voidfrmNewBook_KeyDown(objectsender, KeyEventArgs e)
         {switch(e.KeyData)
             {caseKeys.F4:
                     Console.WriteLine("樓主給點分吧");break;//.........}
         }

相關(guān)文章

  • C#調(diào)用C類型dll入?yún)閟truct的問題詳解

    C#調(diào)用C類型dll入?yún)閟truct的問題詳解

    這篇文章主要給大家介紹了關(guān)于C#調(diào)用C類型dll入?yún)閟truct問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 詳解C#中線程傳參,返回值和多線程沖突問題的解決

    詳解C#中線程傳參,返回值和多線程沖突問題的解決

    這篇文章主要為大家詳細介紹了C#中線程傳參,返回值和多線程沖突問題的解決方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-11-11
  • C# 7.0之ref locals and returns(局部變量和引用返回)

    C# 7.0之ref locals and returns(局部變量和引用返回)

    這篇文章主要介紹了C# 7.0之ref locals and returns,即局部變量和引用返回,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • C#簡單的向量用法實例教程

    C#簡單的向量用法實例教程

    這篇文章主要介紹了C#簡單的向量用法,需要的朋友可以參考下
    2014-07-07
  • c# 線程定時器 System.Threading.Timer的使用

    c# 線程定時器 System.Threading.Timer的使用

    本文主要介紹了c# 線程定時器 System.Threading.Timer的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C# 操作Excel代碼總結(jié)

    C# 操作Excel代碼總結(jié)

    這篇文章主要介紹了C# 操作Excel代碼總結(jié),具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 基于WPF實現(xiàn)PDF的顯示與轉(zhuǎn)換

    基于WPF實現(xiàn)PDF的顯示與轉(zhuǎn)換

    這篇文章為大家詳細主要介紹了如何基于WPF實現(xiàn)PDF的顯示并轉(zhuǎn)換成圖片,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • C# List<T>的用法小結(jié)

    C# List<T>的用法小結(jié)

    本篇文章主要是對C#中List<T>的用法進行了詳細的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • unity實現(xiàn)場景跳轉(zhuǎn)

    unity實現(xiàn)場景跳轉(zhuǎn)

    這篇文章主要為大家詳細介紹了unity實現(xiàn)場景跳轉(zhuǎn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#實現(xiàn)優(yōu)先隊列和堆排序

    C#實現(xiàn)優(yōu)先隊列和堆排序

    本文詳細講解了C#實現(xiàn)優(yōu)先隊列和堆排序的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04

最新評論