在文本框中捕获ESC

Bar*_*uch 2 .net c# winforms

我想让Esc密钥撤消对文本框的任何更改,因为它获得了焦点.

我有文字,但似乎无法弄清楚如何捕获Esc密钥.无论KeyUpKeyPressed似乎并没有得到它.

key*_*rdP 8

这应该工作.你是如何处理这个事件的?

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{          
    if (e.KeyCode == Keys.Escape)
    {
       MessageBox.Show("Escape Pressed");
    }
 }
Run Code Online (Sandbox Code Playgroud)

编辑回复评论 - 尝试覆盖ProcessCmdKey:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{
     if (keyData == Keys.Escape && myTextBox.Focused) 
     {
         MessageBox.Show("Escape Pressed");
     }

     return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)