C# 处理标签仅删除文本窗体

C# 处理标签仅删除文本窗体,c#,winforms,graphics,controls,C#,Winforms,Graphics,Controls,因此,我在运行时创建标签,但由于某些原因,在处置标签时: Content.Dispose(); Header.Dispose(); 背景色仍然保持不变,我连接到它的所有事件也保持不变。此外,当Mauly将它们从控制装置中移除时,它们仍然保留: 除此之外,我还尝试在表单上调用Update方法,但除了短暂的“眨眼”之外,没有任何变化。这让我疯狂了好几个小时。您必须从表单的控件集合中删除标签 Content.SomeEvent -= Content_SomeEvent; // Unhook eve

因此,我在运行时创建标签,但由于某些原因,在处置标签时:

Content.Dispose();
Header.Dispose();
背景色仍然保持不变,我连接到它的所有事件也保持不变。此外,当Mauly将它们从控制装置中移除时,它们仍然保留:


除此之外,我还尝试在表单上调用Update方法,但除了短暂的“眨眼”之外,没有任何变化。这让我疯狂了好几个小时。

您必须从表单的
控件
集合中删除标签

Content.SomeEvent -= Content_SomeEvent; // Unhook event handlers.
Controls.Remove(Content);
Content.Dispose();

Controls.Remove(Header);
Header.Dispose();


显然(根据一条评论)问题在于标签创建了两次。

另外,我在另一个类中拥有所有逻辑,并且在该类的构造函数中获得了控件集合。我还取消了所有事件的订阅,也没有帮助。即使使它们不可见也没有帮助。我只是做了一个测试。它适用于我(仅移除和处置)。您确定背景色来自标签吗?或者它是某个容器控件的颜色?标签是直接在表单上还是包含在另一个控件中(如TabControl、Panel等)?好吧,似乎出于某种原因,标签创建了两次,我会将您的标签标记为答案,感谢您的帮助:)在一个小程序中以不到30行的速度复制此内容。换言之,创建一个适当的。现在它不需要回答。它已经回答了。无论如何,谢谢!