如何从中的组框中删除控件

本文关键字:删除 控件 | 更新日期: 2023-09-27 18:00:20

我在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(ParameterFrame中的Control ctl),但它只删除了一半的控件。我用这样的方法一次添加两个控件:

ParameterFrame.Controls.Add(txt);ParameterFrame.Controls.Add(lbl);

出于某种原因,foreach()只会删除我添加的两个中的第一个。在上述情况下,只有txt(文本框)会被删除。如果我先切换顺序并添加标签,foreach只会删除标签并将文本框留在那里。为什么我不知道。尽管正如我所说,常规的for循环将它们全部删除。