У меня есть приложение в WinForms, где у меня много элементов управления. Эти элементы управления представляют настройки приложения, и пользователь может сохранить эти настройки, нажав на кнопку.NumericUpDown Недопустимое значение
Я пытаюсь решить проблему с NumericUpDown (я буду называть его Num) управления: Допустим, что Num имеет следующие свойства:
Минимум: 10 Максимум: 60 Шаг: 1
Если пользователь хочет изменить значение, есть два способа сделать это: щелкнуть стрелки (правая сторона Num) или ввести вручную значение Num. Первый путь в порядке, но большинство пользователей используют второй способ, и есть небольшая проблема.
Если пользователь вводит некоторое значение из интервала, например, 1, это нормально, потому что он может продолжать печатать с 5, поэтому окончательное значение равно 51, и это находится внутри интервала. Но если он перестанет печатать после значения 1, это означает, что он вводит значение из интервала (1). Если он щелкнет где-нибудь из числа Num, значение (которое находится вне интервала) автоматически изменяется на ближайшее допустимое значение (в случае 1 значение будет изменено на 10).
Но он, вероятно, не заметит этого автоматического изменения, поэтому я хочу как-то справиться с ним и сообщить ему, что он помещает там недопустимое значение. Но эта ситуация не обрабатывается никаким событием Num (нет способа узнать это недопустимое значение, которое он поставил там - если я попытаюсь прочитать значение внутри события ValueChanged, он считывает автоматически измененное значение, а не недопустимое).
Я знаю, что могу добавить событие TextChanged
, но есть проблема, что если он напечатает некоторое недопустимое значение (5), его можно будет заменить на действительное значение (добавив 1, чтобы оно составляло 15).
У вас есть идеи, как решить эту проблему? Я знаю, что это глупо, но это не зависит от меня, я должен это сделать, и я не знаю, как это сделать.
Но что, если пользователь хочет установить значение со стрелками? Если не установлено минимальное и максимальное значение, он может легко перейти к недопустимому значению с помощью этих стрелок ... – DanielH
используйте Num.ValueChanged, чтобы сохранить значение в пределах. – OSKM