【发布时间】:2014-08-23 20:40:19
【问题描述】:
我是新来的,我可能会因为没有看到关于 Keys 的旧帖子而受到抨击,但我向你保证,我已经阅读了很多帖子,但找不到我正在寻找的答案。
我有一个 C# 程序,一个计算器,可以正确计算方程式,但我希望能够通过单击和键盘输入来调用方法。就像这样,如果用户输入 2 + 2 ENTER 文本框将显示 4。程序执行的唯一方法目前是用户是否真的点击了这些按钮。研究 Keys 如何在 C# 中工作,我发现了很多关于 KeyCode 和 Keys 的信息,但关于如何在程序中实际实现它们的信息却很少。关于实现代码,我遇到的一件事是:
private void Calculator_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
MessageBox.Show("Up button was pressed");
}
}
表格的名称是计算器。我可以毫无问题地编译这段代码,但它似乎没有做任何事情。如果你愿意,我可以为你们放置整个程序,但它有几页长,并且有很多 cmets 和其他东西。我只是不明白为什么我不能让我的程序读取密钥。我也尝试过 KeyPress 而不是 KeyDown,仍然没有。任何帮助将不胜感激。
编辑: Marcel N. 给出了一个很好的答案,在启用 KeyPreview 并使用代码后,我能够让它工作:
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.D1)
cmd1.PerformClick();
if (e.KeyCode == Keys.D2)
cmd2.PerformClick();
if (e.KeyCode == Keys.D3)
cmd3.PerformClick();
if (e.KeyCode == Keys.D4)
cmd4.PerformClick();
......................
}
我很高兴所有数字都能正常工作,但仍然无法让 Enter、Divide、Multiply 和箭头键正常工作。感谢您的快速帮助。
【问题讨论】: