#winforms #numericupdown
#winforms #numericupdown
Вопрос:
У меня есть средство выбора NumericUpDown, для которого установлен диапазон допустимых лет, по умолчанию для текущего года.
Пользователь может отредактировать номер в поле с помощью клавиатуры: скажем, если номер там 2011 для начала, они могут нажать пробел, и число в поле на экране будет 201. Однако, насколько я знаю, свойство value элемента управления никогда не будет считывать число ниже установленного мной минимума (в данном случае 1900).
Мне нужен способ получить номер, который в данный момент находится в поле на экране, независимо от того, находится ли он в моем допустимом диапазоне или нет. Кто-нибудь знает, как это сделать?
Спасибо!
Ответ №1:
Вы можете использовать NumericUpDown.Text
свойство для получения текущего текста, а затем выполнить синтаксический int
анализ. Может показаться, что свойство не существует, но оно есть.
Текст не влияет на внешний вид элемента управления NumericUpDown; следовательно, он скрыт в конструкторе и от IntelliSense.
Комментарии:
1. Спасибо, я делаю подкласс элемента управления для запуска события, когда пользователь вводит число в пределах допустимого диапазона. Прямо сейчас измененное значение срабатывает после того, как они покидают поле (если они используют клавиатуру), что плохо сочетается с моей схемой сохранения формы.
2. Кроме того, я раньше не сталкивался с «скрытым» методом, подобным этому.
3. @IBC сначала я тоже могу вспомнить.
4. Это полезно знать. Я также искал свойство. По крайней мере, теперь я знаю, что есть причина, по которой я не смог ее найти. 🙂