处置控件仅处置我目标控件的一半

问题描述 投票:0回答:1
    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 个,依此类推)

此代码的目的是处置/删除目标控件,以尝试刷新在表单加载时添加的控件。

vb.net
1个回答
0
投票

试试这个?

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
© www.soinside.com 2019 - 2024. All rights reserved.