Fin dalle prime versioni, Windows ci ha abituato ad utilizzare il tasto TAB per spostare il focus da un controllo al successivo: questo è, ovviamente, il comportamento predefinito anche per le applicazioni Windows Forms realizzate con .NET. Il cambiamento del focus può essere però realizzato anche via codice, utilizzando il metodo SelectNextControl: esso sposta automaticamente il focus sul controllo successivo, secondo la numerazione stabilita dalla proprietà TabIndex. Ad esempio, per fare in modo che, alla pressione del tasto INVIO in un TextBox, il focus passi alla casella successiva, immaginando che la proprietà TabIndex sia impostata correttamente, si deve scrivere:
Private Sub txt_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
'Se è stato premuto il tasto INVIO, si sposta nella prossima casella di testo.
If (e.KeyChar = Convert.ToChar(13)) Then
Dim txt As TextBox = CType(sender, TextBox)
Me.MoveFocus(txt)
e.Handled = True
End If
End Sub
Private Sub MoveFocus(ByVal ctrl As Control)
Me.TopLevelControl.SelectNextControl(ctrl, True, True, True, True)
End Sub
Il metodo SelectNextControl accetta tutta una serie di parametri booleani, con cui è possibile decidere, ad esempio, se passare al controllo successivo o a quello precedente, e ripartire dal primo oggetto quando si arriva a quello con il TabIndex più alto (tutti questi dettagli sono disponibili nella documentazione in linea).