[英]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.