Как ограничить процент только до 100, используя маску в devexpress? - PullRequest
3 голосов
/ 16 января 2012

Привет, я использую devexpress, и я установил тип маски на числовой, а маску редактирования на "p". Проблема в том, что я хочу ограничить скрытое текстовое поле максимум 100 процентами и не принимать отрицательный.

С наилучшими пожеланиями,

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Вы не должны пытаться установить минимальные / максимальные значения с помощью EditMask. EditMask 'p' правильно ограничивает запись допустимыми процентными строками, но 123 % или -17.5 % являются действительными процентными значениями.

Вместо этого вы должны либо ограничить значения, которые принимаются путем реализации события EditValueChanging (вы можете установить Cancel, если хотите отклонить ввод пользователя). Кроме того, многие из редакторов DevExpress имеют свойства MaxValue и MinValue , такие как SpinEdit .

Изменить, чтобы включить пример кода

    void spinEdit1_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
    {
        Decimal newValue;
        if (Decimal.TryParse(e.NewValue.ToString(), out newValue))
        {
            if (newValue < 0 || newValue > 100)
                e.Cancel = true;
        }
    }
0 голосов
/ 16 января 2012

Я предлагаю вам использовать элемент управления SpinEdit и его MinValue / MaxValue свойства:

spinEdit.Properties.Mask.EditMask = "P"; // EditValue from 0 to 100 as percent
spinEdit.Properties.Mask.UseMaskAsDisplayFormat = true;
spinEdit.Properties.MinValue = 0.0M;
spinEdit.Properties.MaxValue = 100.0M;

Справочная статья по теме: Тип маски: числовой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...