根据MSDN 上的这个页面Key Value
, Left Control 的值为 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);
}