tabcontrol

27/02/2007 - 10:34 por dani | Informe spam
Buenas, tengo 3 tabs en un form y quiero que, cuando pulse INTRO en el
último textbox de la primera pestaña del tab, me vaya a la segunda pestaña a
otro textbox, he probado con el siguiente código, pero no funciona (ojo, sí
que funciona el INTRO,lo que no hace es pasarme a la otra pestaña):

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

C04TextBox.Focus()

End If

C04textbox está en la siguiente pestaña, la que no muestra

Gracias

Preguntas similare

Leer las respuestas

#1 dani
27/02/2007 - 12:52 | Informe spam
Ya lo he conseguido, después de varias horas googleando, encontré la forma
de hacerlo, la dejo aquí por si alguien le sirve (supongo que no sabría
hacerlo mucha gente, ya que no han contestado)

Me.TabControl1.SelectedTab = Me.TabPage2

"dani" escribió en el mensaje
news:
Buenas, tengo 3 tabs en un form y quiero que, cuando pulse INTRO en el
último textbox de la primera pestaña del tab, me vaya a la segunda pestaña
a otro textbox, he probado con el siguiente código, pero no funciona (ojo,
sí que funciona el INTRO,lo que no hace es pasarme a la otra pestaña):

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

C04TextBox.Focus()

End If

C04textbox está en la siguiente pestaña, la que no muestra

Gracias




Respuesta Responder a este mensaje
#2 Carlos Gómez
27/02/2007 - 19:12 | Informe spam
Efectivamente, no conocía esa posibilidad.

Pero te mando esto que hice que hace lo que tu querías y quizás es mas
versatil:

el formulario tiene un tabcontrol con 2 pestañas y 4 textbox (2 en
cada pestaña)
Espero que esta solución, te sea util (alguna vez)

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress,
TextBox4.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
pasaFoco(DirectCast(sender, Control))
End If
End Sub

Private Sub pasaFoco(ByVal ctrl As Control)
If Me.GetNextControl(DirectCast(ctrl, Control), True) Is Nothing
Then
Me.TabControl1.SelectedIndex = 0
Else
If Me.GetNextControl(DirectCast(ctrl, Control), True).CanFocus
Then
Me.GetNextControl(DirectCast(ctrl, Control), True).Focus()
Else
Me.TabControl1.SelectedIndex = ((Me.TabControl1.SelectedIndex
+ 1) Mod Me.TabControl1.TabPages.Count)
End If
End If
End Sub
Respuesta Responder a este mensaje
#3 Bichox_NET
28/02/2007 - 22:48 | Informe spam
Hola Dani

Lo primero que tienes que hacer es referenciar a la pestaña y luego haces
referencia al TextBox que requieres colocando el foco tal cual como lo estas
haciendo.

El codigo deberia quedar asi :

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

Nombre de la pestaña.TextBox.Focus()

End If

Espero que te funcione.
"dani" wrote:

Buenas, tengo 3 tabs en un form y quiero que, cuando pulse INTRO en el
último textbox de la primera pestaña del tab, me vaya a la segunda pestaña a
otro textbox, he probado con el siguiente código, pero no funciona (ojo, sí
que funciona el INTRO,lo que no hace es pasarme a la otra pestaña):

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

C04TextBox.Focus()

End If

C04textbox está en la siguiente pestaña, la que no muestra

Gracias





Respuesta Responder a este mensaje
#4 dani
01/03/2007 - 08:32 | Informe spam
Gracias por el código, no sabía esta posibilidad con el DirectCast

Un abrazo

"Carlos Gómez" escribió en el mensaje
news:
Efectivamente, no conocía esa posibilidad.

Pero te mando esto que hice que hace lo que tu querías y quizás es mas
versatil:

el formulario tiene un tabcontrol con 2 pestañas y 4 textbox (2 en
cada pestaña)
Espero que esta solución, te sea util (alguna vez)

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress,
TextBox4.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
pasaFoco(DirectCast(sender, Control))
End If
End Sub

Private Sub pasaFoco(ByVal ctrl As Control)
If Me.GetNextControl(DirectCast(ctrl, Control), True) Is Nothing
Then
Me.TabControl1.SelectedIndex = 0
Else
If Me.GetNextControl(DirectCast(ctrl, Control), True).CanFocus
Then
Me.GetNextControl(DirectCast(ctrl, Control), True).Focus()
Else
Me.TabControl1.SelectedIndex = ((Me.TabControl1.SelectedIndex
+ 1) Mod Me.TabControl1.TabPages.Count)
End If
End If
End Sub
Respuesta Responder a este mensaje
#5 dani
01/03/2007 - 08:42 | Informe spam
Pues no, eso no me va, no lo reconoce

gracias

"Bichox_NET" escribió en el mensaje
news:
Hola Dani

Lo primero que tienes que hacer es referenciar a la pestaña y luego haces
referencia al TextBox que requieres colocando el foco tal cual como lo
estas
haciendo.

El codigo deberia quedar asi :

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

Nombre de la pestaña.TextBox.Focus()

End If

Espero que te funcione.
"dani" wrote:

Buenas, tengo 3 tabs en un form y quiero que, cuando pulse INTRO en el
último textbox de la primera pestaña del tab, me vaya a la segunda
pestaña a
otro textbox, he probado con el siguiente código, pero no funciona (ojo,

que funciona el INTRO,lo que no hace es pasarme a la otra pestaña):

If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True

C04TextBox.Focus()

End If

C04textbox está en la siguiente pestaña, la que no muestra

Gracias





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida