Многократная проверка флажков (для выписки) - PullRequest
0 голосов
/ 11 февраля 2019

Я недавно начал заниматься кодированием. Я студент первого курса IT.Мой профессор дал нам проект, в котором мы должны создать любую систему управления, и я выбрал один тип фаст-фуда.

Я наткнулся на какую-то проблему при выполнении функции проверки.У меня есть это несколько графических блоков с отдельными флажками, я сделал функцию, что всякий раз, когда пользователь нажимает на графический блок, флажок будет установлен. мой проект в настоящее время

проблема, с которой я столкнулся, заключается в том, что я хочу взять все данные (текст) отмеченных полей с оператором if, но это было бы так утомительно, потому что у меня 15 картиноккоробки с флажком.Есть ли более простой способ сделать это с помощью для заявления?или что-нибудь просто, чтобы сократить мой код.

это мой текущий код .

private void button1_Click(object sender, EventArgs e)
    {
        string food1 = "";
        string food2 = "";
        //...........................food15

        if (checkBox1.Checked)
        {
            food1 = checkBox1.Text;
        }
        if (checkBox2.Checked)
        {
            food2 = checkBox2.Text;
        }
        //.............................................checkbox15
        if (food1 != "" || food2 != "")
        {
            MessageBox.Show(food1 + food2);
        }
        else
        {
            MessageBox.Show("Pick something ");
        }
    }

1 Ответ

0 голосов
/ 11 февраля 2019

примерно так:

var foods = new List<string>();

foreach(var checkbox in Controls.OfType<CheckBox>())
{
    if(checkbox.Checked)
    {
        foods.Add(c.Text);
    }
}

if(foods.Count != 0){
    //do popup
} else {
    //pick something
}

форма предоставляет коллекцию Form.Controls, которая содержит все элементы управления в этой форме;OfType<CheckBox>() фильтрует список, поэтому мы делаем только чекбоксы.

я также использовал список продуктов, а не отдельные строки food1, food2

, затем вы можете проверить счетчик и использовать его.

также вы можете сделать что-то вроде String.Join(", ", foods.ToArray()); сделать запятую в отдельном списке ваших продуктов

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