天天看點

C# KeyDown與KeyPress

按鍵事件的觸發順序:

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();
            }
        }
    }
}      
C# KeyDown與KeyPress
C# KeyDown與KeyPress

相同的按鍵,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();
            }
        }
    }
}