У меня есть элемент управления TextEdit, что я хочу вести себя определенным образом:DevExpress RegEx маска с различными DisplayFormat не работает
Когда управления имеет фокус ввода, я хочу только разрешить ввод положительных целых чисел (не ноль). Я достигаю этого, используя Properties.Mask, который отлично работает.
Когда элемент управления НЕ имеет фокус ввода, я хочу, чтобы он отображал введенный номер, но с «, 00» в конце.
Так что, в основном, когда я что-то ввожу, я вижу только, что я вхожу, например. «17», но когда Control теряет фокус, я хочу, чтобы он показывал «17,00». Так что мне разрешено вводить целые положительные числа, но Controll всегда будет добавлять «, 00» после этого.
Мое понимание состоит в том, что существуют в основном два разных режима: DisplayMode и EditMode.
EditMode = Элемент управления имеет фокус.
DisplayMode = Элемент управления не имеет фокуса.
В EditMode я могу вводить вещи в свой элемент управления Textedit. То, что я могу и не могу войти, определяется маской.
Когда я теряю фокус, он переходит в DisplayMode. Здесь я не могу набрать ничего в TextEdit, но теперь отображаемый текст больше не определяется маской, а свойством «Свойства.DisplayFormat». Поэтому для достижения моей цели я попытался установить DisplayFormat.FormatString на «0.00», чтобы он всегда показывал два десятичных знака «x, 00».
Как-то это не работает должным образом. DisplayFormat, похоже, ничего не делает и даже в DisplayMode, TextEdit по-прежнему показывает только целое число без десятичных знаков.
Я понимаю, что я мог бы использовать событие, чтобы обойти эту проблему, но я думаю, вот что DisplayFormat, EditFormat и маска для, и я действительно не хочу, чтобы обрабатывать несколько событий, за то, что мало.
Причина, по которой я не могу использовать MaskType Numeric, заключается в том, что она позволяет отрицательные числа и ноль. Есть ли способ запретить пользователю использовать отрицательные числа? – Smogen
@ Смоген Да. Вы можете использовать [Сепаратор раздела] (https://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx # SectionSeparator) в вашей маске. Оставьте отрицательный раздел пустым и используйте '#' в качестве разделителя цифр. Итак, вот ваша маска: '###, ###, ###, ###, ###, ###;'. – nempoBu4
Это сработало! Большое спасибо! – Smogen