按鍵事件的觸發順序:
keyDown (控件擷取焦點按鍵發生)
擷取焦點按鍵發生)
KeyUp (控件擷取焦點并釋放時發生)
那麼keyDown和keyPress的差別:
KeyDown不能區分字元大小寫
KeyPress區分大小寫。
他們之間擷取鍵和值的方法也有差別。看例子:
namespace KK
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "";
label2.Text = "";
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
label1.Text = "";
label2.Text = "";
}
else
{
label1.Text += e.KeyCode;
label2.Text += e.KeyValue;
//label2.Text += Convert.ToInt32().ToString();
}
}
}
}
相同的按鍵,KeyPress執行的結果:
namespace KK
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "";
label2.Text = "";
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
label1.Text = "";
label2.Text = "";
}
else
{
label1.Text += e.KeyChar;
//label2.Text += e.KeyValue;
label2.Text += Convert.ToInt32(e.KeyChar).ToString();
}
}
}
}