Partager via


Propriété TabIndex – Exemple

L’exemple suivant utilise la propriété TabIndex pour afficher et définir l’ordre de tabulation des contrôles individuels. Vous pouvez appuyer sur Tab pour atteindre le contrôle suivant dans l’ordre de tabulation et afficher le TabIndex de ce contrôle.

Vous pouvez également cliquer sur un contrôle pour afficher son TabIndex. Vous pouvez modifier le TabIndex d’un contrôle en spécifiant une nouvelle valeur d’index dans textBox et en cliquant sur CommandButton3. La modification de TabIndex pour un contrôle met également à jour tabIndex pour d’autres contrôles dans frame.

Pour utiliser cet exemple, copiez le code de l’exemple dans la partie Déclarations d’un formulaire. Vérifiez que le formulaire contient :

  • Une étiquette nommée Label1.
  • un contrôle TextBox nommé TextBox1 ;
  • un contrôle Frame nommé Frame1 ;
  • une zone de texte dans le cadre appelée TextBox2 ;
  • Deux contrôles CommandButtondans frame nommés CommandButton1 et CommandButton2.
  • Une barre de défilement dans l’image nommée ScrollBar1.
  • un bouton de commande (ne figurant pas dans le cadre) appelé 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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.