gpt4 book ai didi

C# 没有像我告诉的那样处理控件

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:48 25 4
gpt4 key购买 nike

我有一个面板控件。在面板内,用户可以添加组合框、文本框的标签等,并将它们拖来拖去,我的表单上有一个删除按钮,如果他们单击它,它将删除该面板内的所有控件。但是这段代码:

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);
}

最佳答案

Dispose() 仅清理非托管资源(尽管 Paul Williams 在评论中指出它通常比这更复杂!)因此它可能会或可能不会对您的情况做任何有用的事情。

尝试使用 RemoveAt(i) 方法而不是 Dispose() 方法移除控件:

for(int i = panel.Controls.Count-1; i >= 0; i--)
{
panel.Controls.RemoveAt(i);
}

关于C# 没有像我告诉的那样处理控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493309/

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