键枚举奇怪的行为

时间:2015-11-19 15:26:09

标签: c# enums

这个问题https://stackoverflow.com/q/33805968/2307070向我的程序员提出了一些问题。所以我抓住了VS(2013年,如果重要的话)并在我的表格中添加了这个功能:

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
    return base.ProcessCmdKey(ref msg, keyData);
}

在立即窗口中使用keyData设置一个断点。我按 Enter 并得到:

keyData
LButton | MButton | Back

确定。所以 Enter 似乎是 Back

这里有趣的乞求:

keyData == Keys.Enter
true
keyData == Keys.Back
false

如何解释这种行为?

1 个答案:

答案 0 :(得分:0)

工作正常:

this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.Enter)
        {
            MessageBox.Show("Enter");
        }

        if (e.KeyCode == Keys.Back)
        {
            MessageBox.Show("Back");
        }
    }