我在表單(144)上有很多按鈕需要刪除。他們的名字都以「R」開頭。所以我使用了這段代碼。刪除控件
Sub RemoveBookingButtons()
Dim cntrl As Control
For Each cntrl In Me.Controls
If Mid(cntrl.name, 1, 1) = "R" Then
Me.Controls.Remove(cntrl)
End If
Next
End Sub
但是每當我運行這個子函數時,它會刪除以「R」開頭的其他每個按鈕。有人可能會提出更好的代碼或指出該缺陷是在該代碼段還是隱藏在程序中的其他位置。
你是指其他每個按鈕或其他控件?因爲在這個循環中你遍歷所有的控件(不僅僅是按鈕)。要迭代只有按鈕,你可以使用'For Each btn As Button In Me.Controls.OfType(Of Button)()' – Himal 2012-03-11 09:43:59
你能解釋一下你的需求嗎? _「但是每當我運行這個子函數時,它都會刪除以'R'」_開頭的其他按鈕。我會假設這是你想要的行爲,不是嗎? – 2012-03-11 11:10:38
@Tim Schmelter這意味着如果我有144個按鈕,它會刪除它們中的72個。再次運行例程,並刪除它們中的36個。所以如此。 – 2012-03-13 06:07:41