将NumericUpDown控件的当前值限制为另一个NumericUpDown

时间:2013-07-01 17:30:58

标签: c# winforms numericupdown

我在NumericUpDown应用程序中有2个winforms控件,用于最小值/最大值。我想做一些事情,如果MAX是30,那么MIN值不应该超过29,如果我们说MIN值是20,那么MAX值不应该比21更低。

所以我想要的是MIN和MAX值之间应该总是1。

我试着像下面的代码那样逻辑,但它不起作用!有什么问题?

private void numericUpDownChartMin_ValueChanged(object sender, EventArgs e)
{
    var value = numericUpDownChartMin.Value; //Current value

    if (value < numericUpDownChartMax.Value) //if value < MAX
        tempChart.ChartStyle.MinimumValue = value; //Use the value
    else
        numericUpDownChartMin.Value = value; //Keep the value the same
}

private void numericUpDownChartMax_ValueChanged(object sender, EventArgs e)
{
    var value = numericUpDownChartMax.Value; //Current value

    if (value > numericUpDownChartMin.Value) //if value > MAX
        tempChart.ChartStyle.MaximumValue = value; //Use the value
    else
        numericUpDownChartMax.Value = value; //Keep the value the same
}

示例!!!!

upDownMÍN当前值为20,upDownMax当前值为30.因此用户可以将upDownMin值更改为29。

如果将upDownMAX增加到40,则用户可以将upDownMIN设置为39。

upDownMAX也是如此......用户不应该将最大值设置为低于upDownMIN值。

1 个答案:

答案 0 :(得分:3)

    private void numericUpDownChartMin_ValueChanged(object sender, EventArgs e)
    {
         numericUpDownChartMax.Minimum = numericUpDownChartMin.Value + 1;
    }

    private void numericUpDownChartMax_ValueChanged(object sender, EventArgs e)
    {
         numericUpDownChartMin.Maximum = numericUpDownChartMax.Value - 1;
    }