Click here to Skip to main content
15,879,326 members
Articles / Programming Languages / Visual Basic
Tip/Trick

Determine selected RadioButton in a Group of RadioButtons

Rate me:
Please Sign up or sign in to vote.
4.00/5 (1 vote)
5 Mar 2010CPOL 31.5K   3   2
This code permits a developer to determine if a radio button is selected in a container such as a panel or GroupBox using syntax similar to TryParse.Requires Requires Framework 3.5 or higherExamplePrivate Sub Button1_Click() Handles Button1.Click Dim SelectedButton As New...
This code permits a developer to determine if a radio button is selected in a container such as a panel or GroupBox using syntax similar to TryParse.

Requires Requires Framework 3.5 or higher


Example
VB
Private Sub Button1_Click() Handles Button1.Click
    Dim SelectedButton As New RadioButton
    If GroupBox1.GetSelectedRadioButton(SelectedButton) Then
        MsgBox(SelectedButton.Name)
    Else
        MsgBox("Please make a selection")
    End If
End Sub


Extension to be placed in a code module
XML
<System.Diagnostics.DebuggerStepThrough()> _
<System.Runtime.CompilerServices.Extension()> _
Public Function GetSelectedRadioButton(ByVal container As Control, _
                                       ByRef Button As RadioButton) As Boolean
    Dim Result As Boolean = False

    Dim RadioCollection = From Control In container.Controls _
                          Where TypeOf Control Is RadioButton Select Control

    If Not RadioCollection Is Nothing Then
        Dim CheckedButton = (From Item In RadioCollection.Cast(Of RadioButton)() _
                             Where Item.Checked).DefaultIfEmpty(Button).First

        If Not CheckedButton.Name.Equals(Button.Name) Then
            Button = CheckedButton
            Result = True
        End If
    End If

    Return Result

End Function

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Instructor / Trainer
United States United States
Microsoft MVP, Uses Microsoft Visual Studio ecosystem building web and desktop solutions

Comments and Discussions

 
GeneralNice solution Pin
Johnny J.4-Mar-10 20:15
professionalJohnny J.4-Mar-10 20:15 
One small thing, though:

"Requires VS2008 or higher" - Surely you mean "Requires Framework 3.5 or higher"? VS2008 can also target Framework 2.0 (and 3.0 for that matter)

/Johnny
GeneralRe: Nice solution Pin
karenpayne5-Mar-10 4:17
karenpayne5-Mar-10 4:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.