Pergunta

I have several panels on a form that I want to appear corresponding to a numericUpDown value. (ie- panel 1 is visible when the value is 1, panels 1 and 2 are visible when the number is 2, panels 1 2 and 3 are visible when the value is 3, ect)

I am able to get the initial panel to function as expected with my existing code, but the subsequent ones are not appearing or disappearing as I intended. I'm not quite sure why. Is it because the value of the NUP is not updating when it is changed?

Code:

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;
        }
    }

I'm looking to have this continue up until 5. Any insight on what I'm doing wrong would be appreciated.

Foi útil?

Solução

You can write simpler code to achieve your goal:

pet1Panel.Visible = (petNumNumericUpDown.Value >= 1);
pet2Panel.Visible = (petNumNumericUpDown.Value >= 2);
...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top