我正在测试密钥,我得到了=和Shift + =(+)具有相同的代码:187
表达式e.KeyValue == 187
适用于这两种情况。如何验证真钥?感谢
答案 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 =
}