gpt4 book ai didi

c# - 在 C# 中动态创建和释放控件

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:05 27 4
gpt4 key购买 nike

作为 .NET 领域的新手和 Delphi 背景,我习惯于动态创建控件并在需要时手动释放它们。

在 .net 中,被垃圾收集等,我猜你不需要显式释放控件。

在我的例子 (WinForms) 中,我动态填充了带有面板的 flowLayoutPanel,其中包含一些其他控件。在某些情况下,我需要移除一些面板。我正在做的是实现这一点

flowPanel.Controls.Remove(thePanelToRemove);

这具有所需的效果:面板从 flowLayoutPanel 中消失,但我没有得到的是:垃圾收集器是否删除了控件?这将是所需的行为,因为我将创建许多控件,当用户删除它们时将不再使用它们。如果没有,我如何确定控件已被释放?像(伪代码)

flowPanel.Controls.Remove(thePanelToRemove);
thePanelToRemove.Free();

或类似的?

最佳答案

简短回答:是的,垃圾收集器会在需要内存时移除控件。

更长的答案:一些控件要求垃圾收集器无法释放的资源。这些控件实现了 IDisposable 接口(interface),当您不再需要它时,您应该在控件上调用 dispose。 Dispose 将清理这些非托管资源。

关于c# - 在 C# 中动态创建和释放控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com