我花了几个小时试图了解我的编码中的问题,但没有任何结果。因此想到在这里发帖寻求解释
在我的 UI 设计中,我<<checkbox, textbox, textbox>>
按此顺序排列第一行。并且根据返回的结果行数,我将动态创建相同行数的复选框和文本框。
但是,当我尝试删除冗余行,只保留第 1 行时,我注意到只有一些控件被删除。
例如
删除前:
checkbox0 textbox0 tb0
checkbox1 textbox1 tb1
checkbox2 textbox2 tb2
执行后
checkbox0 textbox0 tb0
--------- -------- tb1
checkbox2 textbox2 ---
我的删除代码如下:
foreach (Control c in panel1.Controls)
{
lastChar = c.Name[c.Name.Length - 1];
lastValue = (int)Char.GetNumericValue(lastChar);
MessageBox.Show("second " + c.Name);
if (lastValue > 0 && lastValue < count)
{
panel1.Controls.Remove(c);
c.Dispose();
}
}
理所当然地,foreach 将运行 panel1 中的所有控件。但我注意到,一旦删除语句进入,整个操作就陷入了混乱。