| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > textbox с вводом только чисел |
| Автор: allx86 19.5.2007, 01:21 |
| Наверняка каждому однажды приходилось решать проблему ввода чисел в textbox (чтобы могли вводиться только числа и разделитель - наподобие textbox стандартного калькулятора windows). Хотелось бы посмотреть и сравнить различные решения на С#. Кто как делает? |
| Автор: Mymik 19.5.2007, 08:41 | ||
| allx86, а можно узнать это где ??? Допустим в asp.net это делается с помощью JS
А если в виндоус, то там же есть событие по которому текст еще не попал в форму, но в этом событии ты можешь получить текст. Там вот и фильтруй это дело. Если ты хочешь чтобы текст мог вводится, но при этом программа не пропускала его. То используй Regex. ставишь на поля валидатор и пока пользователь не введет текст соответствующий шаблону, программа дальше не станет работать. |
| Автор: Mymik 19.5.2007, 09:56 |
| да. А в Windows вот решение -->> http://forum.vingrad.ru/forum/topic-151989.html |
| Автор: allx86 19.5.2007, 13:55 | ||||
ИМХО, на каждый текстбокс должны быть наложены ограничения на вводимые значения, в соответствии с логикой программы. Это один из примеров ограничений.
Немного не то. Там не вводится DecimalSeparator Хорошо, поставлю вопрос по-другому: Как реализовать функциональность textbox стандартного калькулятора Windows на С#. |
| Автор: Сарт 19.5.2007, 14:59 | ||||
| Надеюсь это тебя устроит: Для запрещения ввода в textbox любых даннных кроме цифр мы должны в обработчике KeyPress для textbox'а присвоить свойству Handled передаваемого параметра типа System.Windows.Forms.KeyPressEventArgs значение true. Вот пример кода:
...
тут нужна для того, чтобы разрешить ввод десятичного разделителя (точки в данном случае) - причем только одного: если десятичный разделитель уже существует, то вводить второй заперщено. |
| Автор: allx86 19.5.2007, 15:59 | ||||
Windows.Forms
Никто никому ничего не обязан. Если не хочется отвечать, то никто не заставляет. Разумеется, я могу и сам написать, но на это уйдет время, которое я могу потратить на решение функциональных задач, а не на техническую задачу, которая уже неоднократно решена. И заново изобрести колесо. |
| Автор: Сарт 20.5.2007, 03:02 |
| А ты хочешь сразу космолет построить?+ тот код что я кинул- это само колесо. Тебе осталось его только суметь прикрутить. |
| Автор: archeg 20.5.2007, 10:27 | ||
Несмотря на идею многоразового использования кода такое бывает. Кто-то придумал колесо. Потом его придумал ты. И несмотря на то, что ты придумал тоже самое колесо, у тебя оно имеет четыре спицы - у него три. И неизвестно, какое колесо выйдет прочнее....... |
| Автор: allx86 20.5.2007, 12:22 | ||||
В том то и дело, что хотелось бы сравнить различные варианты, кто как делает. Выбрать из каждого метода те моменты, которые понравились и изобрести уже собственное "колесо", возможно уже и с пятью спицами.
И вот уже это полученное колесо "прикручивать". |
| Автор: SherbAnt 20.5.2007, 16:37 | ||
| Я использовал http://www.gotdotnet.ru/Downloads/Examples/279046.aspx А насчет того чтобы не изобретать велосипед -> всё правильно.
www.codeproject.net |
| Автор: Azzdorf 23.5.2007, 13:43 |
| тут про MasketTextBox есть инфо http://www.rsdn.ru/article/dotnet/WinForms20.xml#EMIAE |