Я пытаюсь удалить кнопки, созданные во время выполнения на вкладке. Я сделал функцию, которая должна пройти через все элементы управления на этой вкладке, но по какой-то причине только половина сделанных кнопок удаляется каждый раз, когда она вызывается. (Есть 8 кнопок на странице, и я хочу, чтобы все удалены)Удаление элементов управления из tabPage
foreach(var ctr in tabControl.SelectedTab.Controls)
{
if (ctr is Button)
{
if (ctr is Button) { tabControl.SelectedTab.Controls.Remove((Button)ctr); }
}
}
Я даже попытался сделать следующее, только встретились с той же проблемой,
for (int i = 0; i < 8; i++)
{
tabControl.SelectedTab.Controls.Remove(
((Button)tabControl.SelectedTab.Controls[i]));
}
Однако, когда я пытаюсь отладки, он распознает только 1-ю, 3-ю, 5-ю и 7-ю кнопки, сделанные на tabPage, и удаляет только их, оставляя 4. Если я попытаюсь сделать это второй раз, опять же, он удалит половину, оставив 2. Я инициализирую каждую кнопку следующим образом ,
for (int i = 0; i < 8; i++)
{
tempButton[i] = new Button();
tabControl.SelectedTab.Controls.Add(tempButton[i]);
tempButton[i].AutoSize = true;
tempButton[i].Location = new System.Drawing.Point(
100 + (150 * (i % 4)), 175 + (175 * (int)(.25 * i)));
//tempButton[i].Name = "tempButton" + i.ToString();
tempButton[i].Text = names[i];
tempButton[i].Size = new System.Drawing.Size(35, 13);
tempButton[i].TabIndex = i;
}
Это похоже на проблему, хотя ваш метод дал мне ту же проблему. Закончилось движение с циклом for, отсчет с конца, и это похоже на шарм. Спасибо за идею! – Damonky
Я проверил код и не могу повторить то, что вы сказали! Вы уверены, что вышеуказанный код не работает? Снимок, пожалуйста! – David
Протестировал мой исходный код или обратный цикл? Кроме того, я новичок в stackoverflow, для чего вам нужен снимок? – Damonky