Как я могу поймать событие KeyUp? (образец кода, пожалуйста) - PullRequest
4 голосов
/ 09 сентября 2010

Мне нужно поймать KeyDown & , особенно KeyUp события для 1,2,3,4,5,6,7,8,9 кнопок клавиатуры.

Как это происходит?
Я могу поймать событие KeyDown, но как насчет KeyUp ?
Пожалуйста, предоставьте простой код.

Ответы [ 3 ]

6 голосов
/ 09 сентября 2010
private void Form1_Load(object sender, EventArgs e)
{
    this.KeyUp += new KeyEventHandler(Form1_KeyUp);
}

void Form1_KeyUp(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.NumPad1:
            break;
        case Keys.NumPad2:
            break;
            //...
    }
}
0 голосов
/ 09 сентября 2010

Если вам нужно, чтобы логика была точно такой же, то вы можете подключить один и тот же обработчик событий к событиям KeyUp и KeyDown элемента управления, на который хотите захватить ввод.

// this occurs as part of Initialisation via the designer or you can hook up manually
myControl.KeyDown += myControl_KeyChange;
myControl.KeyUp += myControl_KeyChange;
// ...

private void myControl_KeyChange(object sender, KeyEventArgs e)
{
    switch( e.KeyCode )
    {
        case Keys.1:
        {
            // handle the 1 key being pressed
            break;
        }        
        case Keys.2:
        {
            // handle the 2 key being pressed
            break;
        }
        // etc
    }
}
0 голосов
/ 09 сентября 2010
     private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.D1) // number 1
        {
            MessageBox.Show("Hello");
        }
    }
...