从表单中删除控件(没有命中我想删除的每个控件)
Removing Controls from Form (Doesn't hit every Control I want to remove)
我正在向我的表单动态添加一些控件并且效果很好,但是当我想再次删除它们时,它只会以一种奇怪的(随机)模式删除其中的一些控件(这里有 2 个控件,那里有 2 个控件, ...).
我尝试使用:
foreach (Control item in this.Controls.OfType<Control>())
{
if (item.Tag == "potentiallyRemove")
this.Controls.Remove(item);
}
是的,我要删除的控件都设置了 "Tag" 属性。
我也试过只删除图片框:
foreach (Control item in this.Controls.OfType<PictureBox>())
{
this.Controls.Remove(item);
}
我不想使用 this.Controls.Clear()
因为我有一个我不想删除的标题行。
这是一个错误还是类似的问题?如果是,是否有任何解决方法?
避免错误:将控件添加到数组中,然后将其删除。
试试这个:
List<Control> controlsToBeRemoved = new List<Control>();
foreach (Control item in this.Controls.OfType<PictureBox>())
{
controlsToBeRemoved.Add(item);
}
foreach (Control item in controlsToBeRemoved)
{
this.Controls.Remove(item);
}
我正在向我的表单动态添加一些控件并且效果很好,但是当我想再次删除它们时,它只会以一种奇怪的(随机)模式删除其中的一些控件(这里有 2 个控件,那里有 2 个控件, ...).
我尝试使用:
foreach (Control item in this.Controls.OfType<Control>())
{
if (item.Tag == "potentiallyRemove")
this.Controls.Remove(item);
}
是的,我要删除的控件都设置了 "Tag" 属性。
我也试过只删除图片框:
foreach (Control item in this.Controls.OfType<PictureBox>())
{
this.Controls.Remove(item);
}
我不想使用 this.Controls.Clear()
因为我有一个我不想删除的标题行。
这是一个错误还是类似的问题?如果是,是否有任何解决方法?
避免错误:将控件添加到数组中,然后将其删除。
试试这个:
List<Control> controlsToBeRemoved = new List<Control>();
foreach (Control item in this.Controls.OfType<PictureBox>())
{
controlsToBeRemoved.Add(item);
}
foreach (Control item in controlsToBeRemoved)
{
this.Controls.Remove(item);
}