为什么这个食谱错了
if (e.KeyChar <= (char)Keys.NumPad0 && e.KeyChar >= (char)Keys.NumPad2)
{
if (e.KeyChar <= (char)Keys.O && e.KeyChar >= (char)Keys.Oem2)
{
MessageBox.Show("Yes");
}
}
我希望成为0到2之间的数字
答案 0 :(得分:3)
您正在检查它是否等于或小于0并且同时等于或大于2.这是不可能的。你必须切换大于和小于,反之亦然,并处理小键盘和其他数字键,改为:
if (e.KeyChar >= (char)48 && e.KeyChar <= (char)50)
...
答案 1 :(得分:2)
Keys.O
因为你不能用0(数字0)启动枚举名称,所以必须是O(字母o)
并且整个逻辑似乎有缺陷,它应该像
if ((e.KeyChar >= (char)Keys.NumPad0 && e.KeyChar <= (char)Keys.NumPad2) || (e.KeyChar => (char)Keys.Oem0 && e.KeyChar <= (char)Keys.Oem2))
(我不确定&gt; =和&lt; =和Oem0)
答案 2 :(得分:2)
我无法判断此代码是否存在于KeyDown或KeyPress事件处理程序中。如果要过滤键入键,则应使用KeyPress。然后代码就是:
if (e.KeyChar >= '0' && e.KeyChar <= '2') {
MessageBox.Show("yes");
}
答案 3 :(得分:1)
介于0和2之间......
e.KeyChar >= (char)Keys.NumPad0 && e.KeyChar <= (char)Keys.NumPad2