Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Вввод в TexBox только чисел


Автор: slutsker 9.11.2008, 14:37
Подскажите пожалуйста, как сделать, чтобы в TexBox можно было вводить только цифры.
Или на крайний случай, как преобразовать строку в число, причём строка может быть вида "16 рублей" или "45 ываыв 96", а нужно получить только числа smile 

Автор: LectorSP 11.11.2008, 19:45
я бы обработал событие у TextBox - PreviewKeyDown

Код

<Grid>
        <TextBox Height="20" Width="100" PreviewKeyDown="TextBox_PreviewKeyDown"></TextBox>
</Grid>


Обработчик события что-то типа того:

Код

private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if ((e.Key < Key.D0 || e.Key > Key.D9) && e.Key != Key.Back)
                e.Handled = true;
        }


Должно работать : )

Автор: slutsker 11.11.2008, 21:21
 smile Спасибо большое, работает! smile 
Только, оно почему то не понимает цифровые кнопки блока под NumLock'a - это реально излечить?

Автор: LectorSP 12.11.2008, 13:18
Можно вот так вот сделать : ))

Код

private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if ((e.Key < Key.D0 || e.Key > Key.D9) && (e.Key < Key.NumPad0 || e.Key > Key.NumPad9) && e.Key != Key.Back)
                e.Handled = true;
        }

Автор: slutsker 12.11.2008, 19:08
О, вот теперь - то что надо! smile 
спасибо

Автор: namespace 12.11.2008, 19:55
можно без извращений smile

Код

Char.IsDigit((char)e.Key)


P.S. Обратите внимание там (у Char) много полезных функции

Автор: slutsker 12.11.2008, 21:02
Это короче) Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)