Cita:
Iniciado por Avellaneda
Bueno, este código no es muy ortodoxo pero sí efectivo.
Se trata de guardar en una variable el nombre del último control que tenía el foco y al tomar el foco el control que no queremos que lo reciba (en el ejemplo es TextBox1) se lo devuelve al control anterior.
Código PHP:
Public Class Form1
Private UltimoControl As Control
Private Sub Button1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.GotFocus
UltimoControl = Button1
End Sub
Private Sub Button2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.GotFocus
UltimoControl = Button2
End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
Dim ElControl As New Control
ElControl = UltimoControl
ElControl.Focus()
End Sub
Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus
UltimoControl = TextBox2
End Sub
Private Sub TextBox3_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.GotFocus
UltimoControl = TextBox3
End Sub
End Class
El inconveniente es que tienes que repetir el mismo código en todos los controles del formulario (quizá haya alguna forma mas sencilla de hacerlo, pero ahora no se me ocurre ninguna).

Es lo que tengo echo, pero como tu dices, no es muy ortodoxo jejeje
Tiene que haber alguna propiedad o algo sencillo y elegante.
Un saludo y muchas gracias por el aporte.