winform 窗体 键盘按键 获取

1) 这三个事件调用的先后顺序(MSDN)

     1. KeyDown    :在控件有焦点的情况下按下键时发生

     2. KeyPress   :在控件有焦点的情况下按下键时发生。

     3. KeyUp         :在控件有焦点的情况下释放键时发生。

2) KeyDown和KeyPress在MSDN上的解释完全一样,都是在按下键的时候发生,那区别是什么呢?

[csharp]  view plain  copy
  1. textBox1_KeyDown(object sender, KeyEventArgs e)  
  2. textBox1_KeyPress(object sender, KeyPressEventArgs e)  
  3. textBox1_KeyUp(object sender, KeyEventArgs e)
KeyDown和KeyUp用的是KeyEventArgs,KeyPress 用的是 KeyPressEventArgs。

KeyEventArgs 提供了KeyCode,KeyData等System.Windows.Forms.Keys里定义的枚举。

KeyPressEventArgs里自只定义了个KeyChar,并且是char型的

1, KeyPress里取消输入 (A不能输入)

[csharp]  view plain  copy
  1. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)  
  2. {  
  3.     if (e.KeyChar == 'A')  
  4.     {  
  5.         e.Handled = true;  
  6.     }  
  7. }  

2,KeyDown里取消输入 (A不能输入)

[csharp]  view plain  copy
  1. private void textBox1_KeyDown(object sender, KeyEventArgs e)  
  2. {  
  3.     if (e.KeyCode == Keys.A)  
  4.     {  
  5.         e.SuppressKeyPress();  
  6.     }  
  7. }  

SuppressKeyPress方法可以取消KeyPress事件,注意此时KeyUp事件也被取消了(实验得知)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值