RSS
StartseiteKnowledge LibraryTop 10Impressum

5.24 Wie kann ich den Index eines Optionsfeld-Array ermitteln?

VB4-VB6

Von:

Es gibt keinen direkten Weg zu prüfen, welche Option bei einem Optionsfeld-Array gerade ausgewählt ist, außer alle Elemente in diesem Array zu durchlaufen und zu testen, ob deren Option.Value-Eigenschaft True ergibt.

Da die Indizes eines Control-Array lückenhaft sein können, bietet sich die For Each-Schleife für diese Aufgabe an:

Public Function GetSelectedOption(ByVal Options As Object, _
                         Optional ByVal Default As Integer = -1 _
                                  ) As Integer
  Dim lCtl As Control

  GetSelectedOption = -1
  
  For Each lCtl In Options
    If lCtl.Value Then
      GetSelectedOption = lCtl.Index
      Exit For
    End If
  Next
  
  If GetSelectedOption = -1 And Default <> -1 Then
    Options.Item(Default).Value = True
    GetSelectedOption = Default
  End If
End Function

Diese Funktion gibt den ausgewählten Index des Optionsfeld-Array zurück oder -1, wenn keine Auswahl vorhanden ist bzw. den Index der über den Parameter Default eine Vorauswahl festlegt:

Private Sub Command1_Click()
  Select Case GetSelectedOption(Me.Option1)
    Case 0
      '...
    Case 1
      '...
    Case 2
      '...
  End Select
End Sub