У меня есть поле TextEdit только для чисел, в котором MaxLength
установлено значение 2, что позволяет пользователю вводить 0-99. Могу ли я ограничить это меньшим диапазоном, скажем, 0-30, без перехвата события TextChanged
, проверки ввода и отображения сообщения (или аналогичного метода)?
Как установить максимальное числовое значение в поле Devexpress TextEdit?
Ответы (4)
Вы можете установить маску регулярного выражения на \d|[0-2]\d|30
.
person
Blindy
schedule
20.06.2011
идеально, красиво и просто, и мне не нужно перестраивать свой набор элементов управления. Если бы я начинал с нуля, я, возможно, не пошел бы на решение регулярного выражения :)
- person Alex; 20.06.2011
Лично я просто устанавливаю тип маски на
d0
, а затем пишу код проверки, чтобы разрешать только нужные мне числа, с четким сообщением об ограничениях диапазона, если пользователь вводит что-то недопустимое. Хотя это личное предпочтение.
- person Blindy; 20.06.2011
Вы должны использовать элемент управления SpinEdit
и установить свойства max и min.
person
SLaks
schedule
20.06.2011
Как я уже сказал в ответе @Blindy - SpinEdit легче настроить без регулярных выражений, поэтому в целом это лучшее решение, но, поскольку я спросил конкретно о TextEdits, я подумал, что дам Blindy отмеченный ответ
- person Alex; 20.06.2011
@Alex Не забывайте, что вы можете использовать SpinEdit и скрыть кнопки вверх/вниз, чтобы создать внешний вид TextEdit, как показано ниже: devexpress.com/Support/Center/Question/Details/Q476112
- person GEEF; 03.02.2015
Обработать событие EditValueChanging,
private void txtQuantity_EditValueChanging(object sender, ChangingEventArgs e)
{
var value = Convert.ToDouble(e.NewValue);
if (value < MIN || value > MAX) e.Cancel = true;
}
person
Nemo
schedule
12.12.2018
В winforms вы должны использовать System.Windows.Forms.NumericUpDown и установить свойства Maximum и Minimum.
person
jimreed
schedule
20.06.2011