Share via


Ejemplo de propiedad TabIndex

En el ejemplo siguiente se usa la propiedad TabIndex para mostrar y establecer el orden de tabulación de los controles individuales. Puede presionar Tab para llegar al siguiente control en el orden de tabulación y mostrar el TabIndex de ese control.

También puede hacer clic en un control para mostrar su TabIndex. Puede cambiar el tabindex de un control especificando un nuevo valor de índice en el Cuadro de texto y haciendo clic en CommandButton3. Al cambiar TabIndex para un control, también se actualiza tabindex para otros controles del marco.

Para usar este ejemplo, copie este código de muestra en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

  • Un control Label denominado Label1.
  • Un control TextBox denominado TextBox1.
  • Un control Frame denominado Frame1.
  • Un control TextBox en el control Frame, denominado TextBox2.
  • Dos controles CommandButton en el objeto Frame denominado CommandButton1 y CommandButton2.
  • ScrollBar en el marco denominado ScrollBar1.
  • Un elemento CommandButton (no en Frame) denominado 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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.