Сложность брелок - PullRequest
       2

Сложность брелок

0 голосов
/ 04 октября 2010

Почему этот рецепт неправильный

        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

Ответы [ 4 ]

3 голосов
/ 04 октября 2010

Вы проверяете, что оно равно или меньше 0 и в то же время равно или больше 2. Это невозможно. Вы должны переключить свое значение больше чем на меньше и и наоборот, и для обработки как цифровой клавиатуры, так и других числовых клавиш измените ее на:

if (e.KeyChar >= (char)48 && e.KeyChar <= (char)50)
    ...
2 голосов
/ 04 октября 2010

Я не могу сказать, присутствует ли этот код в обработчике событий KeyDown или KeyPress.Если вы хотите отфильтровать клавиши ввода, используйте KeyPress.И код тогда просто:

        if (e.KeyChar >= '0' && e.KeyChar <= '2') {
            MessageBox.Show("yes");
        }
2 голосов
/ 04 октября 2010
Keys.O

, так как вы не можете начать enum name с 0 (число ноль), это должно быть O (буква o)

и вся логика кажется ошибочной, это должно быть что-то вроде

 if ((e.KeyChar >= (char)Keys.NumPad0 && e.KeyChar <= (char)Keys.NumPad2) || (e.KeyChar => (char)Keys.Oem0 && e.KeyChar <= (char)Keys.Oem2))

(я не уверен насчет> = и <= и Oem0) </p>

1 голос
/ 04 октября 2010

От 0 до 2 ...

e.KeyChar >= (char)Keys.NumPad0 && e.KeyChar <= (char)Keys.NumPad2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...