添加/删除具有相同引用名称的控件

时间:2013-12-14 14:26:40

标签: c# winforms controls

当用户点击按钮时,我会依次在面板上添加控件。 控件在面板上依次显示。当面板已满时,例如十, 添加的下一个控件必须替换添加的第一个控件,但首先我需要删除第一个控件....问题是正在创建的所有控件都具有相同的引用,例如“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();

以上不是整个代码,但应该足以解决问题..如果有任何信息。需要请问我。请提前帮助。

1 个答案:

答案 0 :(得分:2)

如果你只想删除第一个孩子使用RemoveAt方法

myPanel.Controls.RemoveAt(0);

<击>

不要使用上面的代码,它会泄漏Handle,使用Dispose作为@Hans在评论中建议

myPanel.Controls[0].Dispose();//This takes care of destroying the window