我在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'索引到列表和重複最後一個到第零個。 –
當你說'每個其他按鈕',你是說它正在刪除你不想刪除的按鈕,或者它只是刪除了一半的按鈕? –