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.