Freigeben über


TabIndex-Eigenschaft (Beispiel)

Im folgenden Beispiel wird die TabIndex-Eigenschaft verwendet, um die Aktivierreihenfolge für einzelne Steuerelemente anzuzeigen und festzulegen. Sie können TAB drücken, um das nächste Steuerelement in der Aktivierreihenfolge zu erreichen und den TabIndex dieses Steuerelements anzuzeigen.

Sie können auch auf ein Steuerelement klicken, um dessen TabIndex anzuzeigen. Sie können den TabIndex eines Steuerelements ändern, indem Sie einen neuen Indexwert im Textfeld angeben und auf CommandButton3 klicken. Wenn Sie den TabIndex für ein Steuerelement ändern, wird auch der TabIndex für andere Steuerelemente im Frame aktualisiert.

Kopieren Sie diesen Beispielcode in den Deklarationsbereich eines Formulars. Make sure that the form contains:

  • Ein Bezeichnungsfeld-Steuerelement ( Label ) mit der Bezeichnung "Label1".
  • A TextBox named TextBox1.
  • Ein Rahmen-Steuerelement ( Frame ) mit der Bezeichnung "Frame1".
  • A TextBox in the Frame named TextBox2.
  • Zwei CommandButton -Steuerelemente im Frame -Objekt mit der Bezeichnung "CommandButton1" und "CommandButton2".
  • Eine Bildlaufleiste im Frame mit dem Namen ScrollBar1.
  • Ein CommandButton-Element (nicht im Frame) mit der Bezeichnung "CommandButton3".
Private Sub MoveToFront() 
 Dim i, Temp As Integer 
 
 Temp = Frame1.ActiveControl.TabIndex 
 For i = 0 To Temp - 1 
 Frame1.Controls.Item(i).TabIndex = i + 1 
 Next i 
 
 Frame1.ActiveControl.TabIndex = 0 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
End Sub 
 
Private Sub CommandButton3_Click() 
 Dim i, Temp As Integer 
 
 If IsNumeric(TextBox1.Text) Then 
 Temp = Val(TextBox1.Text) 
 
 If Temp >= Frame1.Controls.Count Or Temp < 0 
 Then 
 'Entry out of range; move control to front 
 'of tab order 
 MoveToFront 
 ElseIf 
 Temp > Frame1.ActiveControl.TabIndex 
 Then 
 'Move entry down the list 
 For i = Frame1.ActiveControl.TabIndex + _ 
 1 To Temp 
 Frame1.Controls.Item(i).TabIndex = _ 
 i - 1 
 Next i 
 Frame1.ActiveControl.TabIndex = Temp 
 TextBox1.Text = _ 
 Frame1.ActiveControl.TabIndex 
 Else 
 'Move Entry up the list 
 For i = Frame1.ActiveControl.TabIndex - _ 
 1 To Temp 
 Frame1.Controls.Item(i).TabIndex = _ 
 i + 1 
 Next i 
 Frame1.ActiveControl.TabIndex = Temp 
 TextBox1.Text = _ 
 Frame1.ActiveControl.TabIndex 
 End If 
 Else 
 'Text entry; move control to front of tab 
 'order 
 MoveToFront 
 End If 
End Sub 
 
Private Sub UserForm_Initialize() 
 Label1.Caption = "TabIndex" 
 
 Frame1.Controls(0).SetFocus 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
 
 Frame1.Cycle = fmCycleCurrentForm 
 
 CommandButton3.Caption = "Set TabIndex" 
 CommandButton3.TakeFocusOnClick = False 
End Sub 
 
Private Sub TextBox2_Enter() 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
End Sub 
 
Private Sub CommandButton1_Enter() 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
End Sub 
 
Private Sub CommandButton2_Enter() 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
End Sub 
 
Private Sub ScrollBar1_Enter() 
 TextBox1.Text = Frame1.ActiveControl.TabIndex 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.