
Question:
I have say 4 asp.net radiobuttons which are grouped, I want to find out which one is checked.
What seems natural to do is:
Select Case RadioButton.Checked = True Case myRadioButton1 Case myRadioButton2 Case myRadioButton3 Case Else End Select
I just get a 'reference to a non-shared member reference' error. It's a shame because it seems such a clean way to do this test.. Is it possible??
Solution:1
Select Case True Case RadioButton1.Checked Case RadioButton2.Checked Case RadioButton3.Checked Case Else End Select
Solution:2
No. The Checked property of class RadioButton is non-shared, so you cannot get its value unless you have an instance. You can do this using an ElseIf chain, but the cleanest solution IMO is to use a RadioButtonList instead, which will allow you to add items dynamically and read the selected item in one call, just like with a DropdownList.
Solution:3
You could use a RadioButtonList instead. You can only check for primitive data-types in select/case. With normal RadioButtons you could only check for a reference in the CheckedChanged Event when all CheckBoxes are handled there. For example:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load AddHandler Me.RadioButton1.CheckedChanged, AddressOf CheckedChanged AddHandler Me.RadioButton2.CheckedChanged, AddressOf CheckedChanged End Sub Private Sub CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) If sender Is Me.RadioButton1 Then ElseIf sender Is Me.RadioButton2 Then '........ End If End Sub
But that was not your question anyway. Use a RadiobuttonList instead as i mentioned above or a If/else on checked-state because it is more natural.
Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
EmoticonEmoticon