如何控制numericUpDown显示的内容,1而不是1,0,同时保持0,5 percision?

时间:2012-08-30 03:16:13

标签: c# .net winforms numericupdown

我已将numericUpDown控件配置为具有0.5精度。 (从0到10。)

-changed decimalplaces to 1
-changed increment to 0,5
-maximum at 10
-minimum at 0

当值递增时,我看到:

0,0
0,5
1,0
1,5
...
10,0

我想要的是:

0
0,5
1
1,5
...
10

有没有简单的方法可以做到这一点? 谢谢。

2 个答案:

答案 0 :(得分:4)

您可以处理ValueChanged事件并更改DecimalPlaces属性,以便在您的值为舍入值时进行比较。

答案 1 :(得分:2)

您可以将this answer上显示的Winform NumericUpDown控制和override方法UpdateEditText扩展到类似的问题。

您的课程可能如下所示:

public class NumericUpDownEx : NumericUpDown 
{
    public NumericUpDownEx() {
        // Optionally set other control properties here.
        this.Maximum = 10;
        this.Minimum = 0;
        this.DecimalPlaces = 1;
        this.Increment = ,5m;
    }
    protected override void UpdateEditText() {
        // Remove any trailing ',5'.
        this.Text = this.Value.ToString().Replace(".0", string.Empty);
    } 
}

该方法的一个优点是您正在创建一个可以在其他项目中使用的新控件。