C# KeyDown与KeyPress

按键事件的触发顺序:
keyDown (控件获取焦点按键发生)
KeyPress (控件 获取焦点按键发生)
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_第1张图片

C# KeyDown与KeyPress_第2张图片

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

C# KeyDown与KeyPress_第3张图片

C# KeyDown与KeyPress_第4张图片

你可能感兴趣的:(C#)