1

我在 groupbox 中动态创建按钮,所以当我按下第二个按钮时,它应该在同一个 groupbox 中显示不同的按钮集,所以我需要删除早期的按钮才能获得新的按钮,我想对了还是有其他方法.

谢谢

4

4 回答 4

2

我使用了这些代码:

int c = groupBox6.Controls.Count;

for (int i = c - 1; i >= 0; i--)
    groupBox6.Controls.Remove(groupBox6.Controls[i]);

这已经奏效了。

于 2013-02-20T19:07:48.537 回答
1

使用.OfType

var x = groupBox1.Controls.OfType<Button>().Where(c => c.Name == "button1").FirstOrDefault();
groupBox1.Controls.Remove(x);
于 2013-02-20T15:25:14.730 回答
1

您可以使用此代码清除您的组框:

groupbox.Controls.Clear();
于 2015-11-28T19:35:25.663 回答
0

for 循环现在对我有用。我尝试了一个 foreach(Control ctl in ParameterFrame),它只删除了一半的控件。我以这样的方法一次添加两个控件:

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

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

于 2014-09-12T16:46:09.433 回答