繁体   English   中英

在计数器增加或减少时立即显示和隐藏按钮?

[英]Show and hide buttons as soon as counters increases or decreases?

就像这样,我有一个numericUpDown,最大值为4。我要创建它,因此,如果值是1,则只出现一个按钮,如果值是2,则出现两个按钮,等等。如何管理这在代码中? 我正在使用一个计时器,在每个刻度上它都会检查numericUpDown的值是否更改,如果更改,它会添加按钮,但是如果值减小,我该如何做相反的事情,请删除按钮? 例如,如果我的值为4,并且如果我减一,则已经有4个按钮出现,那么只有一个按钮应该消失。 我怎样才能做到这一点 ?

private void timer1_Tick(object sender, EventArgs e)
    {
        if (numericUpDown1.Value == 1)
        {
            metroComboBox3.Show();
        }
        else if (numericUpDown1.Value == 2)
        {
            metroComboBox4.Show();
        }
    }

只需在设计中双击您的numericUpDown,就不需要计时器。

您将获得private void numericUpDown1_ValueChanged

此外,您的代码应如下所示:

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown1.Value == 1)
            {
                metroComboBox3.Show();
            }
            else if (numericUpDown1.Value == 2)
            {
                metroComboBox4.Show();
            }
        }

如果您必须使用计时器进行操作,则可以采用以下方法:

private void timer1_Tick(object sender, EventArgs e)
{
    var buttons = new [] { button1, button2, button3, button4, };
    for (var i = 0; i < buttons.Length; i++)
    {
        buttons[i].Visible = numericUpDown1.Value - 1 >= i
    }
} 

但是我将使用numericUpDown1.ValueChanged事件并执行以下操作:

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    var buttons = new [] { button1, button2, button3, button4, };
    for (var i = 0; i < buttons.Length; i++)
    {
        buttons[i].Visible = numericUpDown1.Value - 1 >= i
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM