如何在FlowLayoutPanel中正确处置用户控件?
flowlayoutpanel1.Controls.RemoveAt(i) 就足够了吗?
flowlayoutpanel1.Controls.RemoveAt(i)
我就是找不到 flowlayoutpanel1.Controls 的.Dispose() ...
flowlayoutpanel1.Controls
发布于 2013-10-25 18:34:35
如果希望移除所有控件,可以向后循环访问控件集合,而不是创建副本(见下文)。
我发现这提供了最好的解决方案,特别是如果您打算在以后重新填充它。强制GC收集有助于在有大量控件的情况下控制内存使用。
FlowLayoutPanel.SuspendLayout(); if (FlowLayoutPanel.Controls.Count > 0) { for (int i = (FlowLayoutPanel.Controls.Count - 1); i >= 0; i--) { Control c = FlowLayoutPanel.Controls[i]; c.SomeEvent -= SomeEvent_Handler;