C# - 如何检测+和=按下的字符

时间:2015-09-13 18:58:57

标签: c# winforms

我正在测试密钥,我得到了=和Shift + =(+)具有相同的代码:187

表达式e.KeyValue == 187适用于这两种情况。如何验证真钥?感谢

2 个答案:

答案 0 :(得分:1)

检查System.Windows.Forms.KeyEventArgs的文档,您似乎在这里使用它,您将发现几个记录的属性,这些属性可以让您了解故事的其他部分"

您感兴趣的是Shift属性。例如:

if ( e.Shift )  { /* the key is + */ }
           else { /* the key is = */ }

另请注意,仅检查Shift属性并不能解释用户同时按下Alt键或Control键的可能性,这些键在Alt和Control属性中的反映方式相似

此外,您可能需要了解Modifiers属性,该属性是一个位字段,用于指示所有修改键状态(Atl,Control和Shift)。

此外,您还需要调查KeyValue,KeyCode和KeyData之间的区别。

KeyValue被定义为原始数值,正如您所发现的那样忽略了移位状态,因此它不能区分大小写,或者在+和=之间区分。

答案 1 :(得分:0)

您可以阅读here通过事件参数,您可以验证是否按下了班次,强烈要求:

if ( e.Shift )  
{ 
   // the key is +  
}
else 
{ 
  //  the key is = 
}