我创建了一个非常简单的 NumericUpDownPlus ,它通过以下方式覆盖 UpdateEditText 方法:(根据这个 SO 问题:在数字之后有文本在 NumericUpDown 控件中)
protected override void UpdateEditText()
{
if (string.IsNullOrWhiteSpace(Units))
{
base.UpdateEditText();
}
else
{
this.Text = this.Value + " " + Units;
}
}
但是,这会在手动编辑控件时给我带来问题。在这种情况下,我将附加“px”作为我的单位,可能会出现以下情况:
- 我选择整个值,包括 px 并写入另一个值,即 400 并且它可以工作,然后重新附加 px。
- 我只选择数字值,留下 px,然后输入一个新值,但是它认为 px 是新值的一部分,并立即恢复为旧值。
当然,我只对数字感兴趣,并不关心使用的是什么单位,这只是为了方便用户。我怎样才能让这个 NumericUpDown 合作?我想在控制获得焦点时清除框,但我觉得这可能不是最好的解决方案。