gpt4 book ai didi

c# - 如何在不更新容器的情况下从容器中删除控件

转载 作者:太空狗 更新时间:2023-10-29 23:10:23 25 4
gpt4 key购买 nike

我有一个普通的 Panel 控件,其中包含一堆用户控件。目前,我执行以下操作:

panel.Controls.Clear();

但这有我看到(尽管很快)每个控件单独消失的效果。

使用 SuspendLayoutResumeLayout 没有任何明显的效果。

问题:有没有一种方法可以删除所有控件,并且仅在删除所有子控件后才更新容器?

编辑:我要删除的控件是从 UserControl 派生的,所以我可以一些控制它们的绘制行为。是否有一些我可能会覆盖的功能,以防止在它们被删除时进行更新?

最佳答案

谢谢 Hans 的建议 - 是的,事实证明我正在泄漏控制。

这是我最后做的:

 panel.Visible = false;

while (panel.Controls.Count > 0)
{
panel.Controls[0].Dispose();
}

panel.Visible = true;

基本上,我在处理每个控件之前隐藏了整个面板(无边框)。处理每个控件会自动从父容器中删除所述控件,这很好。最后,我再次使容器可见。

关于c# - 如何在不更新容器的情况下从容器中删除控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990392/

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