For Each cntrl As Control In Me.Controls
If TypeOf cntrl Is Label And cntrl.Name Like "lblPosition_*" Then
cntrl.Dispose()
End If
Next
当我使用上面的代码时,它只处理我目标的一半(恰好)控件。 如果我在那里输入一个计数来对控件进行计数,则会得到准确的计数,但是一旦我将 dispose() 放入,我只能得到大约一半的控件处置。
在测试过程中,我添加了一个仅运行上述代码的按钮,每次按下它时,它仍然只获得一半的控件。 (即,我的目标是 64 个控件,第一次按会给我 32 个,然后下一个给我 16 个,依此类推)
此代码的目的是处置/删除目标控件,以尝试刷新在表单加载时添加的控件。
试试这个?
For Each cntrl As Control In Me.Controls.ToArray
If TypeOf cntrl Is Label And cntrl.Name Like "lblPosition_*" Then
cntrl.Dispose()
End If
Next