Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2015, 23:06   #1
VadimKhamutov
Пользователь
 
Регистрация: 05.01.2014
Сообщений: 11
По умолчанию Фильтрация символов работает некорректно

Вечер добрый, сообщество!

Решил я написать свой генератор случайных чисел, но столкнулся со следующей проблемой:
Так как в WPF нету KeyPress, только KeyUp & KeyDown, я использовал этот код

Код:
private void NumVal_KeyDown(object sender, KeyEventArgs e)
        {
 
            if (!Char.IsDigit((char)KeyInterop.KeyFromVirtualKey((char)e.Key)) & e.Key != Key.Back)
            {
                e.Handled = true;
            }
и проблема собственно в том, что в текстбокс вводятся числа от 0 до 5, и то ТОЛЬКО с нумпада. Что не так&

З.Ы. Если в этом ( if (!Char.IsDigit((char)
KeyInterop.KeyFromVirtualKey((char)e.Key)) месте убрать (char), то программа ругается, дескать преобразовать в int не может.

В чём моя ошибка?
VadimKhamutov вне форума Ответить с цитированием
Старый 15.08.2015, 23:16   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Попробуйте вместо KeyPess/KeyDown обработать событие PreviewTextInput.
Streletz вне форума Ответить с цитированием
Старый 15.08.2015, 23:41   #3
VadimKhamutov
Пользователь
 
Регистрация: 05.01.2014
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Попробуйте вместо KeyPess/KeyDown обработать событие PreviewTextInput.
Увы, не получилось. Та же ошибка..
VadimKhamutov вне форума Ответить с цитированием
Старый 16.08.2015, 00:16   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от VadimKhamutov Посмотреть сообщение
Увы, не получилось. Та же ошибка..
Код обработчика PreviewTextInput можете показать?
Streletz вне форума Ответить с цитированием
Старый 16.08.2015, 00:28   #5
VadimKhamutov
Пользователь
 
Регистрация: 05.01.2014
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Код обработчика PreviewTextInput можете показать?
Код:
private void NumVal_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {

            if (!Char.IsDigit((char)KeyInterop.KeyFromVirtualKey(e.Text).ToString()) & e.Text != (Key.Back).ToString() )
            {
                e.Handled = true;
            }
Я добавил ToString(), но не помогло
VadimKhamutov вне форума Ответить с цитированием
Старый 16.08.2015, 00:41   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

При обработке этого события используется несколько иной подход.
Код:
if (Char.IsDigit(e.Text, 0) || (e.Text == ","))
  {
    e.Handled = false;
  }
else 
  e.Handled = true;
Примерно как-то так...
Streletz вне форума Ответить с цитированием
Старый 16.08.2015, 00:48   #7
VadimKhamutov
Пользователь
 
Регистрация: 05.01.2014
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
При обработке этого события используется несколько иной подход.
Код:
if (Char.IsDigit(e.Text, 0) || (e.Text == ","))
  {
    e.Handled = false;
  }
else 
  e.Handled = true;
Примерно как-то так...
Большое спасибо!))
VadimKhamutov вне форума Ответить с цитированием
Старый 16.08.2015, 00:50   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Пожалуйста!
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно работает запрос. Abay19941308 БД в Delphi 2 25.12.2013 14:31
Некорректно работает программа Dimakat Помощь студентам 2 07.09.2010 14:54
Некорректно работает запрос Arkuz БД в Delphi 9 20.08.2009 07:04
Некорректно работает запрос zulu80 БД в Delphi 10 16.02.2009 13:35
IdHTTP1 некорректно работает nike-p Работа с сетью в Delphi 9 23.07.2008 23:13