C# Silverlight:减法键
我有一个货币值的句柄。它应该允许负值,比如-555 在keydown/Keypress上,当我试图在Numpad中找到Subtract Key的键值时,它会在IE版本中给我作为Key.Subtract。但在chrome/firefox的最新版本中,它将我显示为Key.Unknown 是否需要进行任何特定的处理 样本:C# Silverlight:减法键,c#,silverlight-4.0,C#,Silverlight 4.0,我有一个货币值的句柄。它应该允许负值,比如-555 在keydown/Keypress上,当我试图在Numpad中找到Subtract Key的键值时,它会在IE版本中给我作为Key.Subtract。但在chrome/firefox的最新版本中,它将我显示为Key.Unknown 是否需要进行任何特定的处理 样本: if ((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 &&a
if ((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || (e.Key == Key.Subtract) || (e.Key == Key.Unknown))
{
//valid number, but if shift is pressed, it is an invalied character
if (Keyboard.Modifiers == ModifierKeys.Shift)
e.Handled = true;
}
else
e.Handled = true;
if((e.Key>=Key.D0&&e.Key=Key.NumPad0&&e.Key当一些客户不使用IE时,我遇到了同样的问题。你要做的是你必须检查PlatformKeyCode的值,它在不同的操作系统上有不同的值,例如,PlatformKeyCode在Windows上是190,但在Mac上是47
以下声明引用自MSDN
便携式钥匙代码是所有可能钥匙的共同子集
受支持操作系统的代码,在本例中为Macintosh和
例如,击键“v”表示为键值
(如果将其转换为整数,则其计算结果将为51,但更精确
如果保留枚举信息,则此键将非常有用)
PlatformKeyCode值为86。但是,某些击键不可用
便携式,如Microsoft Windows的滚动锁定键。在此
在这种情况下,键值未知,这是任何不可移植项的值
在Windows平台上,PlatformKeyCode为145
有关Microsoft Windows特定密钥代码的信息,请参阅
MSDN库中的“虚拟密钥代码”。有关
Macintosh特定键代码,请参阅键盘布局服务参考
在Apple开发者连接网站上
在我的机器上,PlatformKeyCode的值是189。同一操作系统的不同版本之间,该平台密钥代码是否会发生变化。比如说Windows xp、7和8(现在)…或者它是Windows的通用值?我已经用Windows xp、Windows 7和Windows 8对其进行了测试。它们都是相同的值。