【发布时间】:2014-04-08 19:51:44
【问题描述】:
我有这个程序可以动态创建控件(文本框、进度条、标签、计时器)。现在我创建了一个按钮,单击该按钮将擦除表单上创建的控件。这是什么代码?
【问题讨论】:
-
我对此一无所知。
标签: vb.net
我有这个程序可以动态创建控件(文本框、进度条、标签、计时器)。现在我创建了一个按钮,单击该按钮将擦除表单上创建的控件。这是什么代码?
【问题讨论】:
标签: vb.net
创建控件时,请保留引用。例如,您可以将列表用作全局变量。
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 列表中的对象和表单上显示的对象都指向同一个实例,因此您可以在之后轻松地处理它们。
【讨论】:
Private burstbox As New List(Of TextBox),添加控件是这样的:burstbox.Add(New TextBox)。那么我删除文本框的代码是什么?
就像@Jens 上面所说的
For each tb as TextBox in burstbox
burstbox.Remove(tb)
tb.Dispose()
Next
【讨论】: