Die Community zu .NET und Classic VB.
Menü

FAQ 0088: Welcher Optionbutton ist ausgewählt?

 von 

Frage 

Welcher Optionbutton ist ausgewählt?

separate Funktion  

Folgende Funktion wurde von pks gepostet und setzen voraus, daß die Optionbuttons als Steuerelementefeld angelegt wurden:

Public Function OptionbuttonIndex(optButtons As Object) As Integer
    Dim i As Long
   
    For i = optButtons.LBound To optButtons.UBound
        If optButtons(i).Value Then
            OptionbuttonIndex = i
            Exit Function
        End If
    Next
    
    OptionbuttonIndex = -1
End Function

Listing 1: Index mittels Funktion ermitteln

MsgBox "Option1(" & CStr(OptionButtonIndex(Option1)) & ") ist markiert."

Listing 2: Beispiel-Aufruf der Funktion

zusätzliche Variable  

Man kann den Index des ausgewählten Optionbuttons in eine zusätzliche Variable schreiben.
Hier ist allerdings nachteilig, daß man für jedes OptionbuttonFeld eine eigene Variable benötigt.

Private lngOptionIndex As Long

Private Sub Option1_Click(Index As Integer)
    lngOptionIndex = Index
End Sub

Listing 3: Index mittels Variable ermitteln

MsgBox "Option1(" & CStr(lngOptionIndex) & ") ist markiert."

Listing 4: Beispiel-Aufruf mit Variable

zusätzliches Steuerelement  

Häufig werden solcherlei Auswahlmöglichkeiten in einem zusätzlichen Steuerelement (meist in einem Frame) untergebracht, um allen Optionbuttons eine gemeinsame Überschrift zu geben und sie zu gruppieren.
Benötigt man bei diesem Steuerelement die Eigenschaft .Tag nicht, kann man den Index des ausgewählten Optionbuttons auch hierin speichern.

Private Sub Option1_Click(Index As Integer)
    Frame1.Tag = CStr(Index)
End Sub

Listing 5: Index mittels Steuerelement ermitteln

MsgBox "Option1(" & Frame1.Tag & ") ist markiert."

Listing 6: Beispiel-Aufruf mit Steuerelement

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.