Несколько правильных, если выписки из события щелчка мыши - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь сделать программу сбора отходов, и это часть кодов. Моя проблема заключается в том, что если на картинке отображается изображение, что на второй, если заявления (журнал), нет проблем. Но если показывает первое изображение, то на первом if заявления (газета) и если NewWaste (); дает журнал, тогда возникает проблема. Потому что он добавляет их обоих в список, но я не вижу второго изображения на картинке. Как я могу решить это?

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();
            }
        }

1 Ответ

1 голос
/ 30 апреля 2020

Если вы хотите, чтобы второй оператор 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();
        }

Кому:

        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();
        }

Обратите внимание на разницу в ШЕСТОЙ строке!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...