定位计数器,比编码更逻辑

时间:2018-02-18 22:54:12

标签: c# windows-forms-designer

我试图让用户最多选择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");
        }

1 个答案:

答案 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

而且,在编写程序时,您需要为每个顶部编写几乎重复的代码。

带参数的函数会更好。