none
el numeo de tabular RRS feed

Respuestas

  • Hola:

    El número del carácter del tabulador es el 9, que se corresponde con el valor de la enumeración Keys.Tab.

    Pero para que se desencadene el evento KeyPress cuando se pulsa el tabulador sobre un control TextBox de una aplicación Windows Forms, dicho control debe reunir los siguientes requisitos:

         - Que su propiedad Multiline sea igual a True.

         - Que el valor de su propiedad AcceptsTab sea igual a True.

    Si no se reúne esos requisitos, por mucho que pulses la tecla tabulador, no se desencadenará ningún evento de teclado (KeyDown, KeyPress y KeyUp).

    Un saludo

     

     


    Enrique Martínez [MS MVP - VB]
    • Marcado como respuesta koke1 lunes, 29 de noviembre de 2010 18:59
    jueves, 25 de noviembre de 2010 14:37
  • "koke1" preguntó:

    >  tngo este codigo pero no m sale cuando preto el tabulador no me sale el mensaje
    >
    >   If i = True Then
    >
    >        MsgBox("Ya existe este registro")
    >
    >   End If

    Pues si no te sale el mensaje cuando "preto el tabulador", digo yo que será porque el valor de la variable « i » no será True.

    Por supuesto, tal y como te indiqué en mi anterior mensaje, para que se desencadene el evento KeyPress cuando se pulsa el tabulador sobre un control TextBox de una aplicación Windows Forms, dicho control debe reunir los siguientes requisitos:

         - Que su propiedad Multiline sea igual a True.

         - Que el valor de su propiedad AcceptsTab sea igual a True.

    El control TextBox llamado «txtdocumentos», ¿reúne esos dos requisitos?

     

     


    Enrique Martínez [MS MVP - VB]
    • Marcado como respuesta koke1 lunes, 29 de noviembre de 2010 18:58
    viernes, 26 de noviembre de 2010 23:54

Todas las respuestas

  • Prueba con Keys.Tab
    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 24 de noviembre de 2010 15:00
    Moderador
  • tngo asi el codigo dnde tngo q colocar el key tab porfa

    Private Sub txtdocumentos_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdocumentos.KeyPress
            If Char.IsDigit(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsSeparator(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If

            Dim x As Char = e.KeyChar
            If x = Convert.ToChar(30) Then 'enter
                e.Handled = True
                Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")
                    Dim i As Boolean
                    Dim cmd As New OleDbCommand("select * from Ingreso where NºDocumento='" & Me.txtdocumentos.Text & "'", con)

                    con.Open()
                    i = ValidarDocumentos(Me.txtdocumentos.Text)
                    If i = True Then
                        MsgBox("Ya existe este registro")
                        Dim read As OleDbDataReader = cmd.ExecuteReader()

                        Try
                            If read.HasRows Then
                                Me.txtdocumentos.Text = read("Nºdocumento").ToString()
                                Me.Label5.Text = read("fecha").ToString()
                                Me.txtdetalle.Text = read("Detalle").ToString()
                                Me.txtmonto.Text = read("Monto").ToString()
                                Me.txtmontototal.Text = read("Monto_Total").ToString()
                            End If
                        Catch ex As Exception
                            Dim ms As String = ex.Message
                        End Try

                    End If

                    con.Close()
                End Using
            End If
        End Sub

     

     

    miércoles, 24 de noviembre de 2010 15:30
  • En lugar de usar:

     If x = Convert.ToChar(30) 

    usa 

    if x=Convert.ToChar(Keys.Tab)


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 24 de noviembre de 2010 15:31
    Moderador
  • me sale que ay q declararlo el key tab
    miércoles, 24 de noviembre de 2010 15:41
  • Hola:

    El número del carácter del tabulador es el 9, que se corresponde con el valor de la enumeración Keys.Tab.

    Pero para que se desencadene el evento KeyPress cuando se pulsa el tabulador sobre un control TextBox de una aplicación Windows Forms, dicho control debe reunir los siguientes requisitos:

         - Que su propiedad Multiline sea igual a True.

         - Que el valor de su propiedad AcceptsTab sea igual a True.

    Si no se reúne esos requisitos, por mucho que pulses la tecla tabulador, no se desencadenará ningún evento de teclado (KeyDown, KeyPress y KeyUp).

    Un saludo

     

     


    Enrique Martínez [MS MVP - VB]
    • Marcado como respuesta koke1 lunes, 29 de noviembre de 2010 18:59
    jueves, 25 de noviembre de 2010 14:37
  • don softjoaen tngo este codigo pero no m sale cuando preto el tabulador no me sale el mensaje

      Private Sub txtdocumentos_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdocumentos.KeyPress
            If Char.IsDigit(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsSeparator(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If

            Dim x As Char = e.KeyChar
            If x = Convert.ToChar(9) Then 'enter
                e.Handled = True
                Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")
                    Dim i As Boolean
                    Dim cmd As New OleDbCommand("select * from Ingreso where NºDocumento='" & Me.txtdocumentos.Text & "'", con)

                    con.Open()
                    i = ValidarDocumentos(Me.txtdocumentos.Text)
                    If i = True Then
                        MsgBox("Ya existe este registro")
                        Dim read As OleDbDataReader = cmd.ExecuteReader()
                        txtdocumentos.Text = ""
                        txtdocumentos.Focus()
                        Try
                            If read.HasRows Then
                                Me.txtdocumentos.Text = read("Nºdocumento").ToString()
                                Me.Label5.Text = read("fecha").ToString()
                                Me.txtdetalle.Text = read("Detalle").ToString()
                                Me.txtmonto.Text = read("Monto").ToString()
                                Me.txtmontototal.Text = read("Monto_Total").ToString()
                            End If
                        Catch ex As Exception
                            Dim ms As String = ex.Message
                        End Try

                    End If

                    con.Close()
                End Using
            End If
        End Sub

    viernes, 26 de noviembre de 2010 14:49
  • "koke1" preguntó:

    >  tngo este codigo pero no m sale cuando preto el tabulador no me sale el mensaje
    >
    >   If i = True Then
    >
    >        MsgBox("Ya existe este registro")
    >
    >   End If

    Pues si no te sale el mensaje cuando "preto el tabulador", digo yo que será porque el valor de la variable « i » no será True.

    Por supuesto, tal y como te indiqué en mi anterior mensaje, para que se desencadene el evento KeyPress cuando se pulsa el tabulador sobre un control TextBox de una aplicación Windows Forms, dicho control debe reunir los siguientes requisitos:

         - Que su propiedad Multiline sea igual a True.

         - Que el valor de su propiedad AcceptsTab sea igual a True.

    El control TextBox llamado «txtdocumentos», ¿reúne esos dos requisitos?

     

     


    Enrique Martínez [MS MVP - VB]
    • Marcado como respuesta koke1 lunes, 29 de noviembre de 2010 18:58
    viernes, 26 de noviembre de 2010 23:54
  • don sofjoen y hice l q usted me dijo l m sale el mensaje cuando ingreso un dato que ya existe eso sta bn pero cuando ingreso otro dato q no existe en l base datos y preto el tab n m va al siguiente texbox este es el codigo

     Private Sub txtdocumentos_Keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdocumentos.KeyPress
            If Char.IsDigit(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsSeparator(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If

            Dim x As Char = e.KeyChar
            If x = Convert.ToChar(9) Then 'enter
                e.Handled = True
                Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")
                    Dim i As Boolean
                    Dim cmd As New OleDbCommand("select * from Ingreso where NºDocumento='" & Me.txtdocumentos.Text & "'", con)

                    con.Open()
                    i = ValidarDocumentos(Me.txtdocumentos.Text)
                    If i = True Then
                        MsgBox("Ya existe este registro")
                        Dim read As OleDbDataReader = cmd.ExecuteReader()
                        txtdocumentos.Text = ""
                        txtdocumentos.Focus()
                        Try
                            If read.HasRows Then
                                Me.txtdocumentos.Text = read("Nºdocumento").ToString()
                                Me.Label5.Text = read("fecha").ToString()
                                Me.txtdetalle.Text = read("Detalle").ToString()
                                Me.txtmonto.Text = read("Monto").ToString()
                                Me.txtmontototal.Text = read("Monto_Total").ToString()
                            End If
                        Catch ex As Exception
                            Dim ms As String = ex.Message
                        End Try

                    End If

                    con.Close()
                End Using
            End If
        End Sub

        Public Function ValidarDocumentos(ByVal Nºdocumento As String) As Boolean

            Dim bool As Boolean
            Using con1 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")
                Dim cmd As New OleDbCommand("select * from Ingreso where NºDocumento='" & Nºdocumento & "'", con1)
                Dim da As New OleDbDataAdapter(cmd)
                Dim dt As New DataTable
                da.Fill(dt)
                If dt.Rows.Count > 0 Then
                    bool = True
                Else
                    bool = False
                End If

            End Using
            Return bool

        End Function
      
    End Class

    lunes, 29 de noviembre de 2010 13:08
  • "koke1" escribió:

    > don sofjoen y hice l q usted me dijo l m sale el mensaje cuando ingreso un
    > dato que ya existe eso sta bn pero cuando ingreso otro dato q no existe en
    > l base datos y preto el tab n m va al siguiente texbox este es el codigo

    Me parece a mí que tu problema no tiene nada que ver con detectar la tecla tabulador.

    ¡Vamos a ver! Nos vamos a centrar en el problema inicial de tu mensaje, que te recuerdo era el siguiente:

    > mi duda es la siguiente cual es el numero del tabulador si el enter es el
    > 13 cual seria el de tabulador porfa

    Sabiendo ya que el número del carácter del tabulador es el 9, limítate a responder la siguiente pregunta:

    ¿Has podido resolver la duda que tenías sobre el número del tabulador? ¿Sí o no?

    Si la respuesta es afirmativa, mejor será que des por cerrada la conversación marcando como satisfactorias las respuestas que te hayan ayudado a resolver la duda.

    Pero si la respuesta es negativa, lo siento muchísimo pero no sé cómo te puedo decir ya, que el número del carácter del tabulador es el 9, y que para que se desencadene los eventos KeyDown, KeyPress y KeyUp del control TextBox cuando se pulsa la tecla Tabulador, el control tiene que estar configurado de la siguiente manera:

         - Que su propiedad Multiline sea igual a True.

         - Que el valor de su propiedad AcceptsTab sea igual a True.

    Ahora bien, si tu problema es otro que nada tiene que ver con pulsar o no la tecla Tabulador, si no que tiene que ver con ejecutar una consulta SQL de selección para recuperar aquellos Ingresos que se corresponda con un NºDocumento, entonces mejor será que inicies una nueva pregunta, EXPLICANDO CLARAMENTE lo que deseas hacer, y qué problemas son los que tienes. ¿De acuerdo?

    Insisto en que escribas tu mensaje claramente, porque es muy complicado leer medio en condiciones tu mensaje, y no tengo tiempo para estar adivinando el significado de las palabras que aparecen en tus mensajes.

     


    Enrique Martínez [MS MVP - VB]
    lunes, 29 de noviembre de 2010 16:23
  • gracias a los dos ya q lo soluciones con los codigos q  m pasaron ya q = lo utilize los dos y asiu m salio el codigo

     Private Sub txtdocumentos_Keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtdocumentos.KeyPress
            If Char.IsDigit(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsSeparator(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If

            Dim x As Char = e.KeyChar
            If x = Convert.ToChar(9) Then 'enter
                e.Handled = True
                Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")
                    Dim i As Boolean
                    Dim cmd As New OleDbCommand("select * from Ingreso where NºDocumento='" & Me.txtdocumentos.Text & "'", con)

                    con.Open()
                    i = ValidarDocumentos(Me.txtdocumentos.Text)
                    If i = True Then
                        MsgBox("Ya existe este registro")
                        Dim read As OleDbDataReader = cmd.ExecuteReader()
                        txtdocumentos.Text = ""
                        txtdocumentos.Focus()
                    Else
                        txtdetalle.Focus()
                    End If

                    con.Close()
                End Using
            End If
        End Sub

    miércoles, 1 de diciembre de 2010 16:35