【发布时间】:2009-09-29 15:28:11
【问题描述】:
我有一个面板控件。在面板内,用户可以添加组合框、文本框的标签等并拖动它们等等,我的表单上有一个删除按钮,如果他们点击它,它将删除该面板内的所有控件。但是这段代码:
foreach( Control control in panel.Controls )
{
control.Dispose();
}
... 无法正常工作。它并不总是处理面板内的所有控件。有时它会摆脱其中的大部分,有时它只会摆脱一两个。有时除了 1 之外的所有内容都已处置。什么鬼?
编辑:
这是我用来将控件添加到面板的代码:
button1_Click(object sender, EventArgs e)
{
TextBox tbox = new TextBox();
tbox.Multiline = true;
tbox.IsAccessible = true;
panel.Controls.Add(tbox);
}
【问题讨论】:
-
我认为你的问题出在代码的其他地方。
-
我将使用用于创建控件的代码来编辑我的问题。
-
我同意 Dan Herbert 的回答。我认为您对调用 dispose 的作用有根本的误解。
-
我以为你的意思是“WPF”而不是“WTF”,但我猜你第一次就猜对了。 :)
-
调用
Dispose实际上并不一定会做任何事情,当然也不一定会导致控件关闭或消失。
标签: c# winforms foreach dispose