C# 选中多个复选框(用于语句)

C# 选中多个复选框(用于语句),c#,.net,winforms,C#,.net,Winforms,我最近开始学习编码,我是IT专业的一年级学生。 我的教授给了我们一个项目,在这个项目中,我们应该创建任何类型的管理系统,我选择快餐式的 我在做结账功能时遇到了一些问题。 我有多个图片框和单独的复选框,我做了一个功能,每当用户点击图片框,复选框都会被选中。 我遇到的问题是,我想用if语句获取复选框的所有数据(文本),但这会非常繁琐,因为我有15个带有复选框的图片框。 有没有更简单的方法来处理for语句?或者只是为了缩短我的代码 这是我当前的代码 private void button1_Clic

我最近开始学习编码,我是IT专业的一年级学生。 我的教授给了我们一个项目,在这个项目中,我们应该创建任何类型的管理系统,我选择快餐式的

我在做结账功能时遇到了一些问题。 我有多个图片框和单独的复选框,我做了一个功能,每当用户点击图片框,复选框都会被选中。

我遇到的问题是,我想用if语句获取复选框的所有数据(文本),但这会非常繁琐,因为我有15个带有复选框的图片框。 有没有更简单的方法来处理for语句?或者只是为了缩短我的代码

这是我当前的代码

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 ");
        }
    }
大概是这样的:

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
}
var foods=newlist();
foreach(Controls.OfType()中的var复选框)
{
如果(复选框。选中)
{
添加(c.Text);
}
}
如果(foods.Count!=0){
//弹出窗口
}否则{
//挑点东西
}
表单提供一个
表单.Controls
集合,其中包含该表单上的所有控件
OfType()
过滤列表,因此我们只在复选框中循环

我还使用了食物列表,而不是单独的食物1,食物2字符串

然后,您可以检查计数,并使用它


您还可以使用类似于
String.Join(“,”,foods.ToArray())
用逗号分隔你的食物列表

我想你的意思是
c
checkbox
?嗯,我试过你的代码checkbox.checked是有效的,但是,我不知道我怎么才能接受已选中的复选框的文本。