Visual Basic.NET - salirse con esc peroooooo

   
Vista:

salirse con esc peroooooo

Publicado por Francisco lopez (16 intervenciones) el 02/09/2009 03:49:39
hola a todos, esto haciendo una aplicacion que usa tres textBox y me estoy regresando al text anterior al darle flecha para arriba de la siguiente forma.
suponiendo que estoy en el segundo text

If e.KeyCode = Keys.Up Then
Me.TxtBase1.Focus()
End If

hasta ahi toda va muy bien. lo que me gustaria saber es como hacer lo mismo pero con el tabindex es que estoy haciendo un control de usuario y no puedo usar el nombre del control y solo tengo acceso al numero de tabindex

gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:salirse con esc peroooooo

Publicado por JoanF (129 intervenciones) el 02/09/2009 19:49:48
Hola,

Puedes usar el método SelectNextControl que te permite mover el foco al control anterior o siguiente según el orden de tabulación. Seria:

Private Sub Texbox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Down Then
Me.SelectNextControl(sender, True, True, True, True)
ElseIf e.KeyCode = Keys.Up Then
Me.SelectNextControl(sender, False, True, True, True)
End If
End Sub

Ahora bien, si como dices solo tienes acceso al tabindex, entonces el proceso seria recorrer todos los controles internos del user control hasta encontrar el control con el tabindex+1 (o -1) i asignar el foco. Seria:

Dim indiceTabulacion As Integer = 2

For Each controlInterno As Control In Me.Controls
'para mover hacia atras (indiceTabulacion - 1)
If controlInterno.TabIndex = (indiceTabulacion + 1) Then
'la propiedad CanFocus indica que el control puede recibir el foco (que no esta desabilitado, ...)
If controlInterno.CanFocus Then
controlInterno.Focus()
End If
End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:salirse con esc peroooooo

Publicado por Francisco lopez (16 intervenciones) el 02/09/2009 21:29:55
muchisimas gracias, esto era lo que andaba buscando...no tengo mucho conocimiento en .net pero de ahora en adelante voy a coperar con lo poco que se ayudando a los que tengan dudas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar