C\#에서 처리 하고 키보드 와 관련 된 사건 에 대한 상세 한 설명 을 깊이 분석 합 니 다.

3939 단어 c#키보드 이벤트
C#1 에서 키보드 와 관련 된 사건 이 상대 적 으로 적 고 크게 세 가지 가 있 습 니 다.'KeyDown','KeyUp'과'KeyPress'입 니 다.(1).C#1 프로그램 에서 이 사건 들 을 정의 하 는 방법:C#1 에서"KeyDown","KeyUp"의 사건 을 묘사 한 Delegate 는"KeyEventHandler"입 니 다.'KeyPress'를 묘사 하 는 데 사용 되 는 Delegate 는'KeyPress EventHandler'다.이 두 개의 Delegate 는 모두 네 임 스페이스'Syetem.Windows.Froms'에 봉인 되 어 있다.'KeyDown','KeyUp'의 이벤트 에 데 이 터 를 제공 하 는 클래스 는'KeyEventArgs'입 니 다.'KeyPress'이벤트 에 데 이 터 를 제공 하 는 클래스 는'KeyPress EventArgs'입 니 다.마찬가지 로 이 두 사람 도 네 임 스페이스'Syetem.Windows.Froms'에 봉인 되 어 있다.C#1 프로그램 에서"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#1 로 버튼 을 읽 는 프로그램 코드 를 작성 할 수 있 습 니 다.다음은 이 코드(key.cs)와 이 코드 가 실 행 된 인터페이스 입 니 다.그림 02:C#1 로 키보드 버튼 을 읽 는 프로그램 실행 인터페이스 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 ( ) , " :" ) ;

 }
 }

  , , , ......
  , form KeyPreview true
 C# codethis.KeyPreview=true;this.KeyDown+=newKeyEventHandler(frmNewBook_KeyDown);

         }voidfrmNewBook_KeyDown(objectsender, KeyEventArgs e)
         {switch(e.KeyData)
             {caseKeys.F4:
                     Console.WriteLine(" ");break;//.........}
         }

좋은 웹페이지 즐겨찾기