我在Microsoft Visual Studio 2012中使用C#。 我有一个程序在其中创建一组按钮,所有都被分配了相同的事件处理程序。 (花哨的方式让用户选择一个选项。)一旦选择了这个选项,我需要销毁所有这些按钮。我一直在使用下面的代码:C#一次删除多个按钮
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(Button))
{
c.Click -= new EventHandler(TeamChoiceButton_Click);
this.Controls.Remove(c);
c.Dispose();
}
}
问题是它是删除其他每个按钮。我假设,因为我在foreach中删除了它们,所以它调整了索引,使其跳过其他所有索引。什么是正确的方法来做到这一点?任何帮助将不胜感激,特别是如果我误解为什么它跳过其他按钮。
将它们放在面板和迭代'panel.Controls' – etaiso
使用'for'索引到列表和重复最后一个到第零个。 –
当你说'每个其他按钮',你是说它正在删除你不想删除的按钮,或者它只是删除了一半的按钮? –