Маска DevExpress XtraEditors TextEdit

У меня есть TextEdit, и мне нужно ограничить его ввод форматами следующего типа:

  • 00.000
  • 0.000
  • 00.00
  • 0.00
  • ...

Может быть до 3 знаков после запятой. Целая часть не требуется.

Самое близкое, что я нашел, это MaskType = Numeric с маской ###.###. Однако это не принимает все нули, что является требованием.

Какие-либо предложения?

ДОБАВИТЬ: Я думаю о 0{0,3}\.0{0,3} с MaskType = RegEx. Это подходящий выбор?


person SharpAffair    schedule 09.12.2011    source источник


Ответы (2)


Похоже, вы сами ответили на свой вопрос. Ваш RegEx выглядит нормально.

Если вы хотели также разрешить ненулевые значения, такие как 12.345 или 001.010, то маска должна быть [0-9]{0,3}\.[0-9]{0,3}.

person shamp00    schedule 09.12.2011

Проверьте Тип маски XtraEditor: Числовой. вы устанавливаете неправильную маску редактирования. на месте ###.### использовать 000.000. Проверьте раздел пользовательской маски по указанной ссылке.

В случае # входная строка преобразуется в значение редактора, цифры, оставленные пустыми, не сохраняются в результате, а в случае 0; цифры, оставленные пустыми, интерпретируются как нули.

private void Form1_Load(object sender, EventArgs e)
        {
            textEdit1.Properties.Mask.MaskType = MaskType.Numeric;
            textEdit1.Properties.Mask.EditMask = "000.000";
            textEdit1.Properties.Mask.UseMaskAsDisplayFormat = true;
        }
person Niranjan Singh    schedule 09.12.2011