【发布时间】:2016-03-23 08:50:01
【问题描述】:
我有 2 个控件继承 UserControl
一个是容器,另一个是基本文本框标签等的集合。特此标记为ContainerControl 和ComboControl。
ContainerControl 包含一个List<ComboControl> 和一个将它们添加到FlowLayoutPanel 的foreach 循环。 ComboControl 有一个按钮,我想用它来将自己从其父级列表中清除。
我不确定最好的方法是什么。 this.parent 并转换为 ContainerControl 还是 Dispose() 工作?我相当确定我可以将 ref 传递给 List,但这听起来不必要的混乱......
public partial class ContainerControl : UserControl
{
List<ComboControl> ComboControls = new List<ComboControl>();
...
//procederaly generate and fill ComboControls here
...
foreach (ComboControl value in ComboControls)
{
this.flowLayoutTable.Controls.Add(value);
}
...
}
public partial class ComboControl : UserControl
{
private void BtnDel_Click(object sender, EventArgs e)
{
//what goes here
}
...
}
【问题讨论】:
-
您必须发布一些代码,以便有人可以帮助您。
-
ok 放置了一些模型代码。
-
this.flowLayoutTable.Controls.Clear()和ComboControls.Clear()应该足够了。但是,如果有其他对组合控件的引用(例如向它们注册的事件),您也需要清理它,否则可能会出现内存泄漏。 -
好吧,这会不会也将它们从列表中清除?
标签: c# forms winforms user-controls