C# 来自鼠标单击事件的多个正确If语句

C# 来自鼠标单击事件的多个正确If语句,c#,winforms,C#,Winforms,我正在尝试做废物收集计划,这些是代码的一部分。我的问题是如果picturebox在第二本if statements杂志上显示的图像没有问题。但如果第一张图片显示在第一张if声明报纸和if NewWaste上;给杂志的话就有问题了。因为它将它们都添加到列表框中,但我在picturebox上没有看到第二个图像。我怎样才能解决这个问题 private void NewWaste() { Image[] images = new Image[] { newspap

我正在尝试做废物收集计划,这些是代码的一部分。我的问题是如果picturebox在第二本if statements杂志上显示的图像没有问题。但如果第一张图片显示在第一张if声明报纸和if NewWaste上;给杂志的话就有问题了。因为它将它们都添加到列表框中,但我在picturebox上没有看到第二个图像。我怎样才能解决这个问题

private void NewWaste()
        {
            Image[] images = new Image[] { newspaper.Image, magazine.Image, glass.Image };
            int wastes = rnd.Next(images.Length);
            wastePictureBox.Image = images[wastes];
    }
            //(part of class)
            public bool Add(Waste waste)
            {
                if (FilledVolume + waste.Volume <= Capacity)
                    return true;
                else
                    return false;
            }

private void addPaperWasteBtn_Click(object sender, EventArgs e)
        {
            if (paperWasteBox.Add(newspaper) == true && wastePictureBox.Image == newspaper.Image)
            {
                paperWasteListBox.Items.Add("Newspaper");
                NewWasteImage();
            }
            if (paperWasteBox.Add(magazine) == true && wastePictureBox.Image == magazine.Image)
            {
                paperAtikListBox.Items.Add("Magazine");
                NewWasteImage();
            }
        }

如果您只希望在第一个If语句没有运行时运行第二个If语句,那么您希望在第二个条件检查之前运行一个else If语句

更改:

        if (paperWasteBox.Add(newspaper) == true && wastePictureBox.Image == newspaper.Image)
        {
            paperWasteListBox.Items.Add("Newspaper");
            NewWasteImage();
        }
        if (paperWasteBox.Add(magazine) == true && wastePictureBox.Image == magazine.Image)
        {
            paperAtikListBox.Items.Add("Magazine");
            NewWasteImage();
        }
致:


注意第六行的区别

什么是新形象;是吗?对不起,我是说新浪费;对于Add方法,更好的名称是CanAdd。Add建议它在某些地方增加了一种浪费,实际上它非常简单,但我无法思考。非常感谢你。
        if (paperWasteBox.Add(newspaper) == true && wastePictureBox.Image == newspaper.Image)
        {
            paperWasteListBox.Items.Add("Newspaper");
            NewWasteImage();
        }
        else if (paperWasteBox.Add(magazine) == true && wastePictureBox.Image == magazine.Image)
        {
            paperAtikListBox.Items.Add("Magazine");
            NewWasteImage();
        }