【发布时间】:2017-12-21 15:42:22
【问题描述】:
我目前正在为我的工作学习 c#,我一直在尝试一些入门项目,我决定制作一个计算器,我拥有一个简单计算器的所有功能,但是我无法获得小键盘与按键事件或按键事件一起使用的键,我想知道是否有人可以详细帮助我,我想将所有小键盘键设置为计算器上的对应键,这是我尝试过的代码按键事件,我也尝试过打开和关闭数字键盘锁定。
private void n1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar = '1')
{
e.Handled = true;
n1.PerformClick();
}
}
只是一个快速的编辑,我尝试按照 MSDN 示例并包括以下内容
private void n1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
nonNumberEntered = true;
}
}
还是没有成功
【问题讨论】:
-
如果无法阅读文档,请使用 F9 键在代码中的
if行设置断点。然后尝试按数字键盘数字键并使用监视窗口找出在这种情况下e.KeyChar等于什么。你也可以看看e的其他属性。 -
Calculator keypress的可能重复
-
我在 NumLock 开启的情况下检查了 & - 按下 1 键确实会获得一个 KeyPress 事件,其 e.KeyChar 的值等于 '1'。
-
查看您的代码,我看到方法是 n1_KeyPress - 您是否有多个按钮,每个按钮都附加了一个按键事件 n2_, n3_ ...? KeyPress 事件只会发生在具有焦点的按钮上。
-
所以我决定以不同的形式重新编写所述代码,但我仍然没有这样的运气,private void n1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys .NumPad0 || e.KeyCode == Keys.D0) } }