я создал очень простой NumericUpDownPlus, который переопределяет метод UpdateEditText следующим образом: (В соответствии с этим СЦ вопрос: Having text inside NumericUpDown control, after the number)NumericUpDown UpdateEditText вызывает проблемы при вводе значений
protected override void UpdateEditText()
{
if (string.IsNullOrWhiteSpace(Units))
{
base.UpdateEditText();
}
else
{
this.Text = this.Value + " " + Units;
}
}
Однако, это вызывает у меня проблемы при редактировании элемента управления вручную. В этом случае, я добавление «точек», как мои единицы, и могут возникнуть следующие ситуации:
- Я выбираю все значения, в том числе точек и писать в другой, то есть 400, и она работает, и повторно -прибывает px.
- Я выбираю только числовое значение, оставляя px и вводя новое значение, однако он считает, что px является частью нового значения и сразу же возвращается к старому значению.
Конечно, меня интересует только номер, и мне все равно, какое устройство используется, это просто удобство для пользователя. Как я могу заставить этот NumericUpDown сотрудничать? Я думал о том, чтобы просто очистить ящик, когда управление получает фокус, но я чувствую, что это может быть не лучшим решением.
Вы также должны переопределить метод ParseEditText(). Назначьте свойство Value после того, как вы сделали что-то вроде полосы из «px» из строки. –
Это прекрасно, и я могу увидеть метод ParseEditText, но когда я пытаюсь переопределить его, он дает мне «Нет подходящего метода для переопределения», а также говорит мне, что я скрываю метод из родительского класса. –
О, стреляйте, это внутреннее. Я ненавижу NUD :(Fallback должен переопределить ValidateEditText(). Разберите его, чтобы назначить значение и вызвать UpdateEditText(). –