Как установить максимальное числовое значение в поле Devexpress TextEdit?

У меня есть поле TextEdit только для чисел, в котором MaxLength установлено значение 2, что позволяет пользователю вводить 0-99. Могу ли я ограничить это меньшим диапазоном, скажем, 0-30, без перехвата события TextChanged, проверки ввода и отображения сообщения (или аналогичного метода)?


person Alex    schedule 20.06.2011    source источник


Ответы (4)


Вы можете установить маску регулярного выражения на \d|[0-2]\d|30.

person Blindy    schedule 20.06.2011
comment
идеально, красиво и просто, и мне не нужно перестраивать свой набор элементов управления. Если бы я начинал с нуля, я, возможно, не пошел бы на решение регулярного выражения :) - person Alex; 20.06.2011
comment
Лично я просто устанавливаю тип маски на d0, а затем пишу код проверки, чтобы разрешать только нужные мне числа, с четким сообщением об ограничениях диапазона, если пользователь вводит что-то недопустимое. Хотя это личное предпочтение. - person Blindy; 20.06.2011

Вы должны использовать элемент управления SpinEdit и установить свойства max и min.

person SLaks    schedule 20.06.2011
comment
Как я уже сказал в ответе @Blindy - SpinEdit легче настроить без регулярных выражений, поэтому в целом это лучшее решение, но, поскольку я спросил конкретно о TextEdits, я подумал, что дам Blindy отмеченный ответ - person Alex; 20.06.2011
comment
@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