【发布时间】:2014-12-20 13:24:17
【问题描述】:
我有一个在控件列表中动态创建的控件列表。用户可以选择在控制列表中添加textboxes 并删除它们。
我使用以下代码创建了textboxes:
Dim tb As New TextBox
tb.Name = "Textbox" & counter.ToString
tb.Left = 55
tb.Top = fields
Me.Controls.Add(tb)
MyControls.Add(tb)
counter = counter + 1
因此,textbox 创建时的名称为Textbox1、Textbox2 等等,最多可达Textbox10。
用户可以通过点击按钮一一删除textboxes。如果用户想删除这些textboxes,counter会向后运行,会先删除Textbox10,然后再删除Textbox9,依此类推(这与先进先出相同)。
所以,为了删除,我尝试了以下代码,但它没有执行,出现错误。代码写在Button的删除按钮的Click事件下。
For Each CType(Me.Controls("Textbox" & counter), TextBox) As Control In MyControls
Me.Controls.Remove(...) 'The textbox's name to be deleted in place of dots
'The textbox name to be deleted here with .Dispose()
Next
错误是:上面代码的第一行中的“表达式是一个值,因此不能成为赋值的目标”。
如何动态删除一系列textboxes?
【问题讨论】:
-
"但它没有执行,出现错误。" -- 错误是什么?
-
哦,我忘了写错误——“表达式是一个值,因此不能成为赋值的目标。”
-
请不要在 cmets 中发布——更新问题。另外,它到底发生在哪里(在哪一行)?
-
已经做了,好吧。有什么帮助吗?