我有一个for循环来循环控制TableLayoutPanel
中的控件。在TableLayoutPanel
中,有一系列问题,用户需要勾选四个Checkbox
中的一个来回答该问题。第一个问题是可见的,在答复答案时,第二个问题及其Checkbox
变得可见。等到第九个问题结束时。For循环对于tablelayoutpanel中的控件循环不正确
最后有一个保存按钮,其中后端代码有一个for循环,循环遍历tablelayoutpanel中的所有复选框,以检查哪些复选框被选中而没有被选中。
当循环开始运行时,它开始检查第二列中的Checkbox
es,而不是从第一列开始,而是从开始。在循环结束时检查第一列Checkbox
es,这弄乱了顺序。
下面是for循环
foreach (Control control1 in tableLayoutPanel1.Controls.OfType<CheckBox>())
{
CheckBox checkBox = (CheckBox)control1;
String s = checkBox.Name;
//boolean value for checkbox if is checked or not
bool value = checkBox.Checked;
listValue.Add(value);
}
,这是为什么发生,什么可以做,以强制循环的第一列Checkbox
ES开始?
而不是使用一个foreach()的,使用for循环和访问tableLayoutPanel.Controls [I]这种方式维护秩序,他们加入。 Foreach不保证在收集顺序中迭代。 – Mangist
@Mangist foreach不应该以随机顺序神奇地运行 – EpicKip
@Mezo如果你调试了复选框的索引是否像你预期的那样排序? – EpicKip