我有一个带有WPF接口的计算器,并且有一个包含大多数按钮的网格。我希望这些按钮能够对NumPad键等做出反应。我为所有这些创建了 KeyDown事件,但这只适用于我按下的按键当前关注的按钮。我读到了 KeyPreview属性,但这只适用于Windows Forms,对吗?我觉得我只需要更改ButtonGrid
的属性,但我无法弄明白。
顺便提一下编程相对较新。
编辑:这是方法之一,泛型方法怎么样? OnlyDigitsInTextBox是一个自定义方法,由.AppendText扩展方法组成。
private void Button6_Key(object sender, KeyEventArgs e)
{
if (e.Key == Key.NumPad6)
{
OnlyDigitsInTextBox("6");
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
我现在使用EventHandler为每个可能的按钮使用 switch case ,并将该EventHandler作为MainWindow的属性,将所有按钮的Focusable属性设置为False。这可能远非理想,但它现在有效,所以谢谢大家!