我最近开始编码,我是IT专业的一年级学生。 我的教授给我们一个项目,我们应该在其中创建任何类型的管理系统,然后选择一种快餐类型。
我在执行结帐功能时遇到了一些问题。 我有多个带有单独复选框的图片框,我做了一个功能,每当用户单击图片框时,都会选中该复选框。 my proj currently
我遇到的问题是我想使用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 ");
}
}
答案 0 :(得分:1)
类似这样的东西:
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());
这样用逗号分隔食物清单