0
我想刪除在tabPage上運行時所做的按鈕。我做了一個函數,應該通過該tabPage上的所有控件,但由於某種原因,每次調用時只有一半的按鈕被刪除。 (有在頁面上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]));
}
然而,當我嘗試調試,它只識別在tabPage上製作的第1,3,5和7個按鈕,並且僅刪除它們,從而使其離開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 2015-02-12 04:47:40
我已經測試了代碼,並且不能重複你所說的!你確定上面的代碼不起作用嗎?快照請! – David 2015-02-12 04:48:38
測試了我的原始代碼,或反向for循環?此外,我是新的stackoverflow,你想要一個快照? – Damonky 2015-02-12 04:54:38