当用户点击按钮时,我会依次在面板上添加控件。 控件在面板上依次显示。当面板已满时,例如十, 添加的下一个控件必须替换添加的第一个控件,但首先我需要删除第一个控件....问题是正在创建的所有控件都具有相同的引用,例如“pic”,现在当我使用panel1.Controls.Remove(pic)时,它没有指定需要删除第一个位置的控件!!
int index = 0;
if (util.GetSize() != 10)
{
ms.Controls.Add(musNote);
}
else
{
ms.Controls.Add(musNote); //this to replace first musNote added... but before I need to remove the musNote that in that position already (problem all of the are musNote!!
index++;
if (index == 10)
{
index = 0;
}
}
musNote.ShowNote();
以上不是整个代码,但应该足以解决问题..如果有任何信息。需要请问我。请提前帮助。
答案 0 :(得分:2)
如果你只想删除第一个孩子使用RemoveAt方法
myPanel.Controls.RemoveAt(0);
击> <击> 撞击>
不要使用上面的代码,它会泄漏Handle
,使用Dispose作为@Hans在评论中建议
myPanel.Controls[0].Dispose();//This takes care of destroying the window