KeyUp、keyPress、keyDown的簡單理解
阿新 • • 發佈:2019-01-07
對於處理各種普通字元來說,使用KeyPress事件進行判斷再好不過了。
但KeyPress有其自身的侷限性。它不能捕捉功能鍵的按鍵事件,如:F1——F12,shift,Ctrl,Alt,Tab,方向鍵,以及Insert,Home ,print等。
需要對這些按鍵事件進行處理的時候,請使用KeyDown或KeyUP事件。
當然,KeyDown或KeyUP事件 也可以對各種字元進行處理
首先將KeyPreview屬性設定為True;
簡單使用舉例:
public partial class Form1 : Form { public Form1() { InitializeComponent(); } //KeyPress:當在Form1中任意一處輸入字元f時(游標在form中),執行下面的事件 private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar=='f') { MessageBox.Show("form1"); e.Handled = true; } } //當在button1上輸入b時,彈出事件框 private void button1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 'b') { MessageBox.Show("button"); e.Handled = true; } } //當在textBox1中輸入字元t時,執行事件 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 't')//當我輸入1時,發生下面的事件 { MessageBox.Show(e.KeyChar.ToString ()); e.Handled = true; } } //當我在textBox1中按下Backspace鍵 private void textBox1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Back)//當我輸入1時,發生下面的事件 { MessageBox.Show("剛才我按了back鍵"); e.Handled = true; } } //當我在textBox1中輸入A private void textBox1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode==Keys.A) { textBox1.Text = "剛才我按了A鍵"; } } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { try { int kc = (int)e.KeyChar; if ((kc < 48 || kc > 57) && kc != 8) { MessageBox.Show("不等於8"); e.Handled = true; } } catch { } } }