我在 groupbox 中动态创建按钮,所以当我按下第二个按钮时,它应该在同一个 groupbox 中显示不同的按钮集,所以我需要删除早期的按钮才能获得新的按钮,我想对了还是有其他方法.
谢谢
我使用了这些代码:
int c = groupBox6.Controls.Count;
for (int i = c - 1; i >= 0; i--)
groupBox6.Controls.Remove(groupBox6.Controls[i]);
这已经奏效了。
使用.OfType
var x = groupBox1.Controls.OfType<Button>().Where(c => c.Name == "button1").FirstOrDefault();
groupBox1.Controls.Remove(x);
您可以使用此代码清除您的组框:
groupbox.Controls.Clear();
for 循环现在对我有用。我尝试了一个 foreach(Control ctl in ParameterFrame),它只删除了一半的控件。我以这样的方法一次添加两个控件:
ParameterFrame.Controls.Add(txt); ParameterFrame.Controls.Add(lbl);
由于某种原因, foreach() 只会删除我添加的两个中的第一个。在上述情况下,只有 txt(文本框)会被删除。如果我切换顺序并首先添加标签,则 foreach 只会删除标签并将文本框留在那里。为什么我不知道。尽管正如我所说,常规的 for 循环将它们全部删除。