我的表单上有7个RadioButtons
,一个组中有5个,另一组中有2个。当他们在GroupBoxes
时,由于某种原因,检查其中一个RadioButtons
没有取消选中同一GroupBox
中的其他人 - 我认为因为AutoCheck
值是设置为False
,这是必须的,因为否则在加载表单时,默认情况下会检查其中一个RadioButtons
,并且我不希望这种情况发生。
因此,要取消选中同一RadioButtons
内的其他GroupBox
,我会尝试在{{1}中将值设置为True
之后编写一个被调用的子例程事件。
RadioButton_Click
此代码更无用。对于表单上的每个控件,如果它是For Each c As Control In Me.Controls
If TypeOf c Is RadioButton Then
If c.Name <> "rbtnAllSuppliers" AndAlso c.Name <> "rbtnIndividual" Then
If c.Name <> rbtn.Name Then
For Each rbt As RadioButton In Me.Controls
If rbt.Name = c.Name Then
rbt.Checked = False
End If
Next
End If
End If
End If
Next
,而不是RadioButton
或rbtnAllSuppliers
(2个单独的rbtnIndividual
,那么它不是RadioButtons
设置为RadioButton
,然后将其设置为True
。
问题在于,它将2 False
计为Labels
,或至少将它们视为如此,因此在尝试设置``Checked RadioButtons
标签时出错`。
然后我尝试了类似的东西
value of the
但是我不确定我会为For Each c As Control In Me.Controls
If c.GetType Is GetType(RadioButton) Then
If c.Name <> "rbtnAllSuppliers" AndAlso c.Name <> "rbtnIndividual" Then
If c.Name <> rbtn.Name Then
AddHandler DirectCast(c, RadioButton).Checked, AddressOf c.
End If
End If
End If
Next
代码添加什么?作为代表,这里会有什么?如果我放AddressOf
,肯定会创建一个无限循环?
有没有办法使用我不知道的类似方法取消选中所有AddressOf currentSubroutine()
?
实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
使用Me.Controls.OfType(Of RadioButton)
,您可以避免检查循环中的类型,并确保每个控件都是RadioButton