111,125
社区成员
发帖
与我相关
我的任务
分享
// 点击button2生成6个控件,点击button1第一次删除3个,第二次删除2个,第三次才能全部删除完。
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i <= 5; i++)
{
PanelDay kk = new PanelDay(); //用户自定义控件,换成button效果一样
kk.Name = "nn" + i;
kk.Location = new Point(20 + i * 55, 20);
Controls.Add(kk);
}
}
private void button1_Click(object sender, EventArgs e)
{
foreach (Control i in this.Controls)
{
if (i is PanelDay) //PanelDay是用户自定义控件
Controls.Remove(i);
}
}
foreach (Control i in this.Controls)这里,“in”后边应该使用一个集合copy不变副本,而不是直接使用 Controls。private void button1_Click(object sender, EventArgs e)
{
List<Control> controlsToDelete = new List<Control>();
foreach (var item in Controls)
{
if (item is PanelDay)
{
controlsToDelete.Add(item as PanelDay);
}
}
foreach (var item in controlsToDelete)
{
Controls.Remove(item);
}
}