0

我在表单上有几个面板,我希望它们显示为对应于 numericUpDown 值。(即面板1在值为1时可见,面板1和2在数字为2时可见,面板1 2和3在值为3时可见,等等)

我可以使用现有代码使初始面板按预期运行,但后续面板并未按我的预期出现或消失。我不太清楚为什么。是不是因为 NUP 的值在更改时没有更新?

代码:

private void petNumNumericUpDown_ValueChanged(object sender, EventArgs e)

    {
        if ((petNumNumericUpDown.Value == 1) || (petNumNumericUpDown.Value == 2) ||(petNumNumericUpDown.Value == 3) || (petNumNumericUpDown.Value == 4) || (petNumNumericUpDown.Value == 5))
        {
            pet1Panel.Visible = true;
        }

        else
        {
            pet1Panel.Visible = false;
        }

        if((petNumNumericUpDown.Value == 2) || (petNumNumericUpDown.Value == 3) || (petNumNumericUpDown.Value == 4) || (petNumNumericUpDown.Value == 5))
        {
            pet2Panel.Visible = true;
        }

        else
        {
            pet2Panel.Visible = false;
        }
    }

我希望这种情况一直持续到 5 点。任何关于我做错了什么的见解都将不胜感激。

4

1 回答 1

1

您可以编写更简单的代码来实现您的目标:

pet1Panel.Visible = (petNumNumericUpDown.Value >= 1);
pet2Panel.Visible = (petNumNumericUpDown.Value >= 2);
...
于 2013-04-23T21:02:59.300 回答