Захватить ESC в текстовом поле - PullRequest
1 голос
/ 03 января 2012

Я хочу, чтобы клавиша Esc отменяла любые изменения в текстовом поле, поскольку оно получило фокус.

У меня есть текст, но я не могу понять, как захватить клавишу Esc . И KeyUp, и KeyPressed, похоже, не понимают.

Ответы [ 2 ]

7 голосов
/ 03 января 2012

Это должно работать. Как вы справляетесь с событием?

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

Изменить в ответ на комментарий - Попробуйте переопределить 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);
}
1 голос
/ 03 января 2012

это то, что вы ищете?

    string origStr = String.Empty;
    private void txtOrig_Enter(object sender, EventArgs e)
    {
        origStr = txtOrig.Text;
    }

    private void txtOrig_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == Convert.ToChar(Keys.Escape))
        {
            txtOrig.Text = origStr;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...