Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка нажатия клавиш 
:(
    Опции темы
Ptica_Oz
  Дата 17.11.2010, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 1.3.2007

Репутация: нет
Всего: нет



Здравствуйте все.
Ситуация следующая: есть TextBox, в который можно вводить только числа от 0 до 255.
Сделала это при помощи обработки события _KeyDown следующим образом:
Код

private Key[] AllowKey = new Key[]
            { Key.D0, Key.D1, Key.D2, Key.D3, Key.D4, 
                Key.D5, Key.D6, Key.D7, Key.D8, Key.D9};
private void TextBox_KeyDown(object sender, KeyEventArgs e)
        {  
            e.Handled = CheckKey(e.Key);
        }
private bool CheckKey(Key aKey)
        {
            if ((AllowKey.Contains(aKey)) && (Keyboard.Modifiers == ModifierKeys.None))
                return false;
            else return true;
        }

При такое реализации могу водить только цифры с основной клавиатуры.
Как вводить цифры вспомогательной клавиатуры? Ещё хотелось бы обрабатывать нажатие на стрелки вверх/вниз и Enter.
PM MAIL   Вверх
Irdis
Дата 17.11.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 21.5.2008

Репутация: нет
Всего: 1



куда-то не туда 
upd

Key.NumPad0 .. Key.NumPad9
Key.Up Key.Down ....

и лучше так,

Код

private void TextBox_KeyDown(object sender, KeyEventArgs e)
        {  
            e.Handled = !IsDigit(e.Key);
        }
private static bool IsDigit(Key aKey)
        {
            return (Key.D0 <= e.Key && e.Key <= Key.D9) && (Keyboard.Modifiers == ModifierKeys.None));
        }


Это сообщение отредактировал(а) Irdis - 17.11.2010, 12:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.