我试图让用户最多选择4个浇头。按下按钮,它们将改变按钮的颜色并将其添加到将要显示的列表中。此外,用户可以通过再次按下同一按钮来删除顶部。我设法将所有这些排序,问题是当用户添加最后一个顶部并且程序不允许他再删除它。我不断改变if语句或计数器的位置,但没有。我认为是一个逻辑问题,但我找不到它。请帮帮我
private void labelTuna_Click(object sender, EventArgs e)
{
if (counter < 4)
{
if (!My_Pizza.Items.Contains(tuna))
{
My_Pizza.Items.Add(tuna);
labelTuna.BackColor = Color.Green;
counter++;
}
else
{
My_Pizza.Items.Remove(tuna);
labelTuna.BackColor = Color.LightSteelBlue;
counter--;
}
}
else
{
MessageBox.Show("You have more than 4 toppings, Remove then replace one");
}
答案 0 :(得分:0)
如果你想让你的代码工作,那就可以了。
if ( counter >= 4 && !My_Pizza.Items.Contains(tuna) )
{
MessageBox.Show("You have more than 4 toppings, Remove then replace one");
{
else
{
if (!My_Pizza.Items.Contains(tuna))
{
My_Pizza.Items.Add(tuna);
labelTuna.BackColor = Color.Green;
counter++;
}
else
{
My_Pizza.Items.Remove(tuna);
labelTuna.BackColor = Color.LightSteelBlue;
counter--;
}
}
您的错误是不检查其中一个顶部预设是金枪鱼。
说过代码有点乱了。
您不需要计数器变量,只需查看My_Pizza.Items.Count
而且,在编写程序时,您需要为每个顶部编写几乎重复的代码。
带参数的函数会更好。