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