如何在vb.net中删除动态创建的控件?

时间:2014-03-06 09:23:28

标签: vb.net

我有这个程序可以动态创建控件(文本框,进度条,标签,计时器)。现在我创建了一个按钮,单击该按钮将删除表单上创建的控件。这是什么代码?

2 个答案:

答案 0 :(得分:1)

创建控件时,请保留引用。例如,您可以使用列表作为全局变量。

Dim MyControls as List(Of Control)

创建控件时,将它们添加到窗体的控件集合中,也添加到列表

MyControls = New List(Of Control)
[...]
Me.Controls.Add(NewControl)
MyControls.Add(NewControl)

删除从表单中删除它们的控件并处理它们(免费资源)

For each c as Control in MyControls
  Me.Controls.Remove(c)
  c.Dispose()
Next

您可以这样做,因为控件是引用类型。这意味着MyControls列表中的对象和表单上显示的对象都指向同一个实例,因此您可以在之后轻松处理它们。

答案 1 :(得分:0)

就像@Jens上面说的那样

    For each tb as TextBox in burstbox
        burstbox.Remove(tb)
        tb.Dispose()
    Next