【问题标题】:Read keys pressed into string读入字符串的键
【发布时间】:2014-04-16 18:17:21
【问题描述】:

编辑:我重写了问题以使其易于理解。

我试图在我的 WPF 应用程序中捕获某些按下的键,因此我在我的主窗口中注册了一个事件处理程序。

public MainWindow()
{
    InitializeComponent();
    this.KeyDown += new KeyEventHandler(OnButtonKeyDown);
}

事件处理程序本身看起来像这样。

private void OnButtonKeyDown(object sender, KeyEventArgs e)
{
    // I'd like the char value here.
}

我的问题是我无法提取按下的键的字符。只有关键代码。 KeyEventArgs 显然没有这样的属性。

有解决办法吗?

【问题讨论】:

  • 你不就用var keyPress = Console.Read()吗?也许我在这里错过了你的目标......
  • 你想要字符值吗?在这种情况下Console.WriteLine(" Your key is: {0}", (int) keypress.KeyChar)
  • 嗯...有人编辑了这个问题,所以它不再说它是 WPF 应用程序而不是控制台应用程序
  • @Anders 您想将KeyChar 打印到什么位置?一个文本框?网格视图?您的代码示例显示了 Console 示例,这就是人们正在回答的内容。请更新您的上下文。
  • @EvanL 我完全重写了

标签: c# wpf keyboard


【解决方案1】:

我相信您需要使用 e.Key.ToString() 行来获取按下的键的字符值。然后你可以使用 Char.TryParse(string input, out charValue) 来验证你有一个有效的字符,而不是像“Numpad0”这样的东西。

【讨论】:

  • 它可能适用于某些键,但如果你这样做,你也可能会得到类似Numpad0 而不是 0 的结果。
  • 在我的回答中查看更多说明。
猜你喜欢
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 2021-01-11
相关资源
最近更新 更多