Usuario
Mantener Foco en TextBox al presionar Enter

Pregunta
-
Hola gente, el tema en cuestión es que ingreso un numero en un TextBox, presiono Enter, y realiza una accion, hasta ahi funciona perfecto, lo que pasa es que el Textbox pierde foco y no puedo seguir ingresando otros numeros, para ello tengo que hacer click en el TextBox nuevamente.
Agradeceria si alguien me puede dar una mano con esto y decirme como hacer para que el TextBox no pierda el Foco. Gracias! Saludos!
- Cambiado Enrique M. Montejo martes, 18 de septiembre de 2012 15:34 Controles de Windows Forms (De:Lenguaje VB.NET)
Todas las respuestas
-
-
ya lo hice, de dos formas, y no funciona
Private Sub Txt_Prot_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txt_Prot.KeyDown If e.KeyCode = Keys.Enter Then Dim NomPdfComp As String = "" NomPdfComp = ExistePDF() If NomPdfComp <> "" Then MostrarPDF(NomPdfComp) End If e.Handled = True e.SuppressKeyPress = True Txt_Prot.Focus() End If End Sub
-
-
-
Pero por Default no está habilitado que al Dar ENTER cambie de control, si tienes eso en el Evento KeyPress del TextBox o del Form, valida cuando quieres que cambie de Control y cuando no, o si puedes poner el codigo que tengas en el evento KeyPress
-
Este es mi código del KeyPress, que solo admite números:
Private Sub Txt_Prot_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Prot.KeyPress Select Case Asc(e.KeyChar) Case 48 To 57 Case 8 Case 13 Case Else e.Handled = True End Select End Sub
La verdad nunca tuve la necesidad de trabajar con el Focus()... No estoy interiorizado en el tema -
-
Hola Amigo:
Entonces deberas de establecer tu Formulario como activo para posteriormente regresar el foco al control textBox:
Algo como esto:
If NomPdfComp <> "" Then MostrarPDF(NomPdfComp) Me.Active() Txt_Prot.Select() Txt_Prot.Focus() End If
Pruebalo y comentas!
Saludos desde Monterrey, N.L. México
Luis Escobar :D
- Editado JoséLuisGarcía martes, 11 de septiembre de 2012 22:03
-
-
-
-
Despues de la tecla Enter pon esto:
Desconozco si el '13' pertenece a la tecla enter, esto es solo para ejemplificar.Private Sub Txt_Prot_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Prot.KeyPress Select Case Asc(e.KeyChar) Case 48 To 57 Case 8 Case 13 'Aquie llamas al metodo que te carga el Pdf inmediatamente despues retornas el enfoque al TextBox
Me.Active() Txt_Prot.Select() Txt_Prot.Focus() Case Else e.Handled = True End Select End Sub
Saludos desde Monterrey, N.L. México
Luis Escobar :D
- Editado JoséLuisGarcía miércoles, 12 de septiembre de 2012 14:23
-
Luis, efectivamente el 13 pertenece a la tecla Enter, pero sigue sin funcionar
Private Sub Txt_Prot_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Prot.KeyPress Select Case Asc(e.KeyChar) Case 48 To 57 Case 8 Case 13 Dim NomPdfComp As String = "" NomPdfComp = ExistePDF() If NomPdfComp <> "" Then MostrarPDF(NomPdfComp) Me.Activate() Txt_Prot.Select() Txt_Prot.Focus() End If Case Else e.Handled = True End Select End Sub
-
A mi me funciona si le paso antes el foco a cualquier otro campo y luego vuelvo al que me interesa. Así:
Así:
En la propiedad "Despues de actualizar" usa un codigo similar a este:
Private Sub TuBox_AfterUpdate() If Trim(Me.TuBox & "") > "" Then ... Me.TuBox = "" Me.CualquierOtroBox.SetFocus Me.TuBox.SetFocus End If End Sub
-