【问题标题】:Get Value from Keyboard Keys in WPF从 WPF 中的键盘键获取值
【发布时间】:2013-10-06 20:39:17
【问题描述】:

请问如何获取键盘中的值,我刚试过:

   txbPinCode.Password = txbPinCode.Password + Key.NumPad7;

但 passwordBox 中的结果是“NumPad7”。如何从键中获取“7”?

谢谢。

【问题讨论】:

  • 你想在这里做什么?
  • 我想要的是,当我按键盘上的数字说数字 7 时,我希望密码框中显示数字键的值。
  • 天哪,你为什么不只关注密码框?
  • 你不明白我的意思,我想告诉你的是,如果用户想在按下数字 i 时使用物理键盘,我在屏幕上有一个带键盘的“触摸登录页面”想要passwordBox得到这个号码。我希望你能理解我,你知道吗?

标签: wpf keyboard


【解决方案1】:

试试KeyInterop.VirtualKeyFromKey():

var keyEnum = Key.NumPad7;
var keyCode = KeyInterop.VirtualKeyFromKey(keyEnum);

char keyChar;
if((keyCode >= 96) && (keyCode <= 105))
{
    //Numpad keys
    keyChar = (char)('0' + keyCode - 96);
}
else
{
    keyChar = (char)keyCode;
}

txbPinCode.Password = txbPinCode.Password + keyChar;

【讨论】:

  • 嗯.. 它适用于字母和“普通”数字键,但不适用于小键盘。根据这个(键代码列表)[kbdedit.com/manual/low_level_vk_list.html],您可以检查虚拟键值是否在 96 和 105(十六进制 60 和 69)之间以拦截小键盘键。我将更新我的示例。
【解决方案2】:

此解决方案仅对数字键盘有效。

MessageBox.Show( Key.NumPad7.ToString()[6].ToString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-19
    • 2019-05-28
    • 2020-01-19
    • 2020-11-01
    • 2010-11-24
    • 2011-08-03
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多