【问题标题】:How to delete dynamically-created controls in vb.net?如何在 vb.net 中删除动态创建的控件?
【发布时间】:2014-04-08 19:51:44
【问题描述】:

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

【问题讨论】:

  • 我对此一无所知。

标签: vb.net


【解决方案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 列表中的对象和表单上显示的对象都指向同一个实例,因此您可以在之后轻松地处理它们。

【讨论】:

  • 我创建控件的代码是这样的:Private burstbox As New List(Of TextBox),添加控件是这样的:burstbox.Add(New TextBox)。那么我删除文本框的代码是什么?
【解决方案2】:

就像@Jens 上面所说的

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多