Согласно этой странице в MSDN, Key Value
для левого управления - 162. Как я могу определить, нажата ли эта клавиша в коде? В данный момент, каждый раз, когда я пытаюсь справиться с нажатием клавиши, я получаю значение 17
, которое является просто универсальным управляющим ключом. Есть ли способ разграничить два? Я попытался переопределить ProcessCmdKey
и обработать PreviewKeyDown
текстового поля, но они оба возвращают 17 вместо 162. Мне нужно сделать это для всех клавиш-модификаторов, и прежде чем я закончу жестко кодировать значения, есть ли лучшая альтернатива захватить их в коде?
Редактировать: Код добавлен. Чтобы уточнить, я хочу получить номер 162, а не просто найти альтернативный способ дифференциации модификаторов.
private void PortfolioNameTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
var val = e.KeyValue; //17 when control is pressed and not 162
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
//msg.Wparam = 17
return base.ProcessCmdKey(ref msg, keyData);
}