SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: Vortice en Martes 11 de Marzo de 2008, 21:19

Título: Tecla Tab
Publicado por: Vortice en Martes 11 de Marzo de 2008, 21:19
Camaradas como puedo hacer para q al momento de presionar la tecla Tab desde una caja de texto haga un calculo o haga lo que yo quiera.

Lo hago de la siguiente manera pero no funciona.

Solo funciona cuando presiono enter

También he probado con los otros eventos key….

Private Sub monto_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles monto.KeyDown
        If e.KeyCode = Keys.Tab Then
            e.Handled = True
            margen.Text = (monto.Text - costo.Text) / monto.Text
            utilidad.Text = monto.Text - costo.Text
            fecha_prox_paso_seg.Focus()
        End If
        If e.KeyCode = Keys.Enter Then
            e.Handled = True
            margen.Text = (monto.Text - costo.Text) / monto.Text
            utilidad.Text = monto.Text - costo.Text
            fecha_prox_paso_seg.Focus()
        End If
        If e.KeyCode = 9 Then
            MsgBox("resulto")
        End If
    End Sub
Título: Re: Tecla Tab
Publicado por: Abhero en Miércoles 12 de Marzo de 2008, 12:15
cuando presionas TAB se supone que el textbox pierde el foco. Por que no pones tu codigo en el evento LostFocus de ese textbox?

Recuerdos,
Ab.  :hola:
Título: Re: Tecla Tab
Publicado por: Vortice en Miércoles 12 de Marzo de 2008, 13:32
Camarada, No es lo que yo ando buscando, te explico, yo necesito q al momento de estar posicionado en cierta caja de texto y presiona la tecla Tab el foco pase a otra caja de texto y al mismo tiempo me arroje un calculo q se ve reflejado en 2 cajas de texto diferentes, eso.

espero haberme explicado mejor, y gracias por tu respuesta.

Saludos
Título: Re: Tecla Tab
Publicado por: Mollense en Miércoles 12 de Marzo de 2008, 13:55
Cita de: "Vortice"
Camarada, No es lo que yo ando buscando, te explico, yo necesito q al momento de estar posicionado en cierta caja de texto y presiona la tecla Tab el foco pase a otra caja de texto y al mismo tiempo me arroje un calculo q se ve reflejado en 2 cajas de texto diferentes, eso.

espero haberme explicado mejor, y gracias por tu respuesta.

Saludos
Justamente. Abhero está en lo correcto. Cuando presiones TAB el evento LostFocus es desencadenado.
Título: Re: Tecla Tab
Publicado por: Vortice en Miércoles 12 de Marzo de 2008, 14:37
Camaradas, efectivamnete Abhero esta en lo correcto, pero al agregar mi codigo q tenia puesto en el evento KeyDown me da error.

asi esta

Private Sub monto_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles monto.LostFocus
        If e.KeyChar = ChrW(Keys.Tab) Then
            e.Handled = True
            margen.Text = (monto.Text - costo.Text) / monto.Text
            utilidad.Text = monto.Text - costo.Text
            fecha_prox_paso_seg.Focus()
        End If
        If e.KeyCode = Keys.Tab Then
            e.Handled = True
            margen.Text = (monto.Text - costo.Text) / monto.Text
            utilidad.Text = monto.Text - costo.Text
            fecha_prox_paso_seg.Focus()
        End If

    End Sub

me dice q ni KeyChars, ni KeyCode son miembros de System.EventArgs

entonces no funciona, a menos q este haciendo algo mal, lo cual es lo mas provable ustedes tienen mas manejo de VB.Net, pero brothers que sera lo malo q estoy haciendo....

De antemano gracias.
Título: Re: Tecla Tab
Publicado por: Abhero en Miércoles 12 de Marzo de 2008, 20:35
Creo que la parte de "especificar si se presiono TAB o Enter" esta de mas. Ya que de todas formas estarás perdiendo el foco en el Text (Hasta con un clic del mouse)

No te sirve asi como este:

Código: Text
  1.  
  2.  
  3. Private Sub monto_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles monto.LostFocus
  4.  
  5.  
  6. if val(monto.text) => 0 then ' Suponiendo que el monto no debe ser menor 0
  7.  
  8. margen.Text = (monto.Text - costo.Text) / monto.Text
  9. utilidad.Text = monto.Text - costo.Text
  10. fecha_prox_paso_seg.Focus()
  11.  
  12. end if
  13.  
  14. End Sub
  15.  
  16.  
  17.  


Recuerdos,
Ab.