Привязать несколько ключей к событию KeyDown (Shift + * (звездочка)) - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь связать несколько ключей в событии KeyDown, чтобы изменить переменную bool, но я не могу понять, как вызвать клавишу звездочки / звезды (*) с помощью клавиши левого Shift в следующем коде:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Multiply || keyData == (Keys.LShiftKey | Keys.OemQuotes))
    {
        Valgt = true;
    }
}

1 Ответ

1 голос
/ 11 октября 2011

Этот ответ не будет инвариантным с раскладкой клавиатуры, но это сработает при использовании клавиатуры US-EN Это не надежно, но может быть адаптировано к вашей локальной компоновке.

if (keyData == Keys.Multiply || keyData == (Keys.Shift | Keys.D8))
{
    Valgt = true;
}

В качестве альтернативы вы можете использовать событие Control_KeyPress

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{            
    if (e.KeyChar == '*')
    {
        Valgt = true;
    }
}
...