Каков наилучший способ отформатировать поле ввода, представляющее числовое значение? - PullRequest
1 голос
/ 08 сентября 2011

В моей программе на c # у меня есть очень простое поле редактирования DevExpress, которое представляет числовое значение.

enter image description here

Я хотел бы добавить ограничение на числодесятичных знаков таким образом, что:

  • Пользователи не могут вводить, вставлять или иным образом вводить значение, которое содержит более предварительно определенного числа десятичных знаков.Фактически, я просто хочу, чтобы поле ввода игнорировало ввод текста пользователем, как только были введены 3 десятичных знака.
  • Если программист задает текст поля ввода, значение округляется, чтобы соответствовать требованиям.

Каков наилучший способ сделать это?

Ps .: Я думал, что это решит мою проблему:

valueTextEdit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
valueTextEdit.Properties.DisplayFormat.FormatString = "#.000;[#.000];0.000";

Но это не похожеделать что-либо.Я все еще могу ввести значения с 10 десятичными знаками.Также в коде я могу установить текстовое поле для ввода значения с большим количеством десятичных знаков.

Ответы [ 3 ]

3 голосов
/ 08 сентября 2011

Вам необходимо установить UseMaskAsDisplayFormat = true:

Посмотрите здесь и здесь

EDIT:

Хороший пример здесь

0 голосов
/ 08 сентября 2011

Вы можете создать свой собственный класс, который наследует (* наследует) от TextBox, а затем переопределить свойство Text, чтобы добавить свои требования:

internal class SmartTextBox : TextBox
{
    public SmartTextBox()
    {
    }

    public override string Text
    {
        get
        {
            return base.Text;
        }
        set
        {
            // validate 'value' before setting it
            base.Text = value;
        }
    }
}

После создания проекта вы найдете новый Control с именем SmartTextBox с элементами управления .NET.

РЕДАКТИРОВАТЬ: Однако, если вы используете TextBox только для числового ввода, почему бы вам не использовать NumericUpDown Control? Это намного лучше, пользователи не могут вводить символы, и вы даже можете установить точность десятичного числа.

0 голосов
/ 08 сентября 2011

попробуйте этот элемент управления MaskTextBox .Net

, вы можете использовать MaskedTextBox для ввода данных в числовом формате в текстовом поле.

Надеюсь, это поможет вам

спасибо

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