![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
allx86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.5.2007 Репутация: нет Всего: нет |
Наверняка каждому однажды приходилось решать проблему ввода чисел в textbox
(чтобы могли вводиться только числа и разделитель - наподобие textbox стандартного калькулятора windows). Хотелось бы посмотреть и сравнить различные решения на С#. Кто как делает? |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 1 Всего: 78 |
allx86, а можно узнать это где ???
Допустим в asp.net это делается с помощью JS
А если в виндоус, то там же есть событие по которому текст еще не попал в форму, но в этом событии ты можешь получить текст. Там вот и фильтруй это дело. Если ты хочешь чтобы текст мог вводится, но при этом программа не пропускала его. То используй Regex. ставишь на поля валидатор и пока пользователь не введет текст соответствующий шаблону, программа дальше не станет работать. -------------------- |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 1 Всего: 78 |
да. А в Windows вот решение -->> http://forum.vingrad.ru/forum/topic-151989.html
-------------------- |
|||
|
||||
allx86 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.5.2007 Репутация: нет Всего: нет |
ИМХО, на каждый текстбокс должны быть наложены ограничения на вводимые значения, в соответствии с логикой программы. Это один из примеров ограничений.
Немного не то. Там не вводится DecimalSeparator Хорошо, поставлю вопрос по-другому: Как реализовать функциональность textbox стандартного калькулятора Windows на С#. |
||||
|
|||||
Сарт |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 29.4.2006 Репутация: 1 Всего: 0 |
Надеюсь это тебя устроит:
Для запрещения ввода в textbox любых даннных кроме цифр мы должны в обработчике KeyPress для textbox'а присвоить свойству Handled передаваемого параметра типа System.Windows.Forms.KeyPressEventArgs значение true. Вот пример кода:
...
тут нужна для того, чтобы разрешить ввод десятичного разделителя (точки в данном случае) - причем только одного: если десятичный разделитель уже существует, то вводить второй заперщено. --------------------
[color=purple][/color]Died.Of course, System.StackOverflow |
||||
|
|||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 1 Всего: 78 |
я имел ввиду в какой отрасли программирования ты это используешь ??? типа Windows, или asp.net ??? потому что в этих двух отраслях по разному реализуется данный функционал. Не хочу показаться грубым. Но разве мы обязаны за тебя писать код ??? вообще-то тебе дали яркий пример как это реализовываться. А дописать пару строк кода самому... ![]() -------------------- |
|||
|
||||
allx86 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.5.2007 Репутация: нет Всего: нет |
Windows.Forms
Никто никому ничего не обязан. Если не хочется отвечать, то никто не заставляет. Разумеется, я могу и сам написать, но на это уйдет время, которое я могу потратить на решение функциональных задач, а не на техническую задачу, которая уже неоднократно решена. И заново изобрести колесо. Это сообщение отредактировал(а) allx86 - 19.5.2007, 16:20 |
||||
|
|||||
Сарт |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 29.4.2006 Репутация: 1 Всего: 0 |
А ты хочешь сразу космолет построить?+ тот код что я кинул- это само колесо. Тебе осталось его только суметь прикрутить.
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow |
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Несмотря на идею многоразового использования кода такое бывает. Кто-то придумал колесо. Потом его придумал ты. И несмотря на то, что ты придумал тоже самое колесо, у тебя оно имеет четыре спицы - у него три. И неизвестно, какое колесо выйдет прочнее....... Это сообщение отредактировал(а) archeg - 20.5.2007, 10:29 -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
allx86 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.5.2007 Репутация: нет Всего: нет |
В том то и дело, что хотелось бы сравнить различные варианты, кто как делает. Выбрать из каждого метода те моменты, которые понравились и изобрести уже собственное "колесо", возможно уже и с пятью спицами.
И вот уже это полученное колесо "прикручивать". |
||||
|
|||||
SherbAnt |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 12.1.2007 Репутация: 1 Всего: 3 |
Я использовал http://www.gotdotnet.ru/Downloads/Examples/279046.aspx
А насчет того чтобы не изобретать велосипед -> всё правильно.
www.codeproject.net |
|||
|
||||
Azzdorf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 29.3.2007 Репутация: нет Всего: нет |
тут про MasketTextBox есть инфо http://www.rsdn.ru/article/dotnet/WinForms20.xml#EMIAE
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |