WinForms: Как предотвратить обработку текстового поля клавишей Alt и потерю фокуса? - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть это текстовое поле, которое я использую для захвата сочетаний клавиш для конфигурации предпочтений. Я использую низкоуровневую клавиатуру для захвата клавиш, а также для предотвращения их действия, например, клавиша Windows, но клавиша Alt все еще появляется, и мое текстовое поле теряет фокус.

Как заблокировать клавишу Alt, чтобы фокус на моем тексте оставался неизменным?

Ответы [ 2 ]

6 голосов
/ 18 апреля 2010
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Alt)
    {
        e.Handled = true;
    }
}
0 голосов
/ 18 апреля 2010

Вы можете зарегистрироваться для события keydown и для переданных в args:

    private void myTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.Alt)
            e.SuppressKeyPress = true;
    }

И вы регистрируетесь на событие следующим образом:

this.myTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.myTextBox_KeyDown);

или если вы 'Если вы не используете C # 1.0, вы можете упростить это до следующего:

this.myTextBox.KeyDown += this.myTextBox_KeyDown;
...