我目前面临一个非常奇怪的问题。我只是想从组框中删除所有控件,但它不会删除所有控件。这似乎是微软现在的一个错误。我尝试了许多不同的删除这些控件的技术,但它们都没有奏效。我有两个其他方法,我一次只删除一个控件(不,我不能在所有控件的循环中调用它),并且它工作正常。我不知道问题是什么。希望有人知道解决这个问题。
foreach (Control c in fieldBox.Controls) // this does not work, it only removes my labels (I have one txt and one lbl)
fieldBox.Controls.Remove(c);
for (int i = 0; i < fieldBox.Controls.Count; i++) // this does not work either
fieldBox.Controls.Remove(fieldBox.Controls[i]);
for (int i = 0; i < fieldBox.Controls.Count; i++) // still no success
fieldBox.Controls.RemoveAt(i);
for (int i = 0; i < fieldBox.Controls.Count; i++) // nope
fieldBox.Controls.RemoveByKey(fieldBox.Controls[i].Name);
foreach (Control c in fieldBox.Controls) // my final answer, but the outcome did not change
fieldBox.Controls.RemoveByKey(c.Name);
答案 0 :(得分:2)
尝试减少计数器并删除控件
for (int i = fieldBox.Controls.Count - 1; i >= 0; i--) // hopefully successful
fieldBox.Controls.RemoveAt(i);