none
Numero de Cajas de TEXTO RRS feed

  • Pregunta

  • Muy buenas días chicos:

    Como podría hacer, que cuando escriba en un Textbox1, al que llamaré "Items", el numero 4, me aparezcan; 4 cajas de texto. 

    En resumen que el número de cajas de texto que aparecen, dependan del número que se escriba en el textbox llamado "Items".

    Muchas gracias por su valioso tiempo compañeros.

    Saludos

    domingo, 19 de junio de 2016 23:09

Respuestas

  • Hola Paulcarlin_S,

    Primeramente deberías especificar que lenguaje es, C# o Vb.Net ?

    [-] Como podría hacer, que cuando escriba en un Textbox1 ...

    Si quieres ejecutar el código al momento de escribir puedes usar el evento TextChanged del TextBox, pero antes tendrías que validar si el valor escrito corresponde a un número, caso contrario mostrar una alerta.

    Te dejo un ejemplo en Vb.Net.

    En este caso mi textBox se llama txtCantidad, en el cual escribiré el valor.

       Private Sub txtCantidad_TextChanged(sender As Object, e As EventArgs) _
                           Handles txtCantidad.TextChanged
    
            'Almacenará el valor si es un número
            Dim cantidad As Integer
    
            If Not Int32.TryParse(txtCantidad.Text, cantidad) Then
                MessageBox.Show("Ingrese un número")
                txtCantidad.Text = String.Empty 'Limpiamos
                Exit Sub 'Salimos
            End If
    
            'Espacio entre los TextBox a crear
            Dim espaciadoY = 25
    
            'Creo los TextBox
            For i = 1 To cantidad
                Dim txt As New TextBox
                txt.Location = New Point(txtCantidad.Location.X,
                                         txtCantidad.Location.Y + espaciadoY) 'El Y es el orden vertical
                espaciadoY += 25
                Me.Controls.Add(txt) 'Agrego al formulario
            Next
    
        End Sub

    Tomo como localización la coordenada de mi txtCantidad, para que aparezca en orden.

    Resultado :

    Teniendo esto :

     Dim txt As New TextBox

    Puedes acceder a las demás propiedades del TextBox mediante el txt.Propiedad.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 19 de junio de 2016 23:38
  • Paulcarlin_S,

    Te recomiendo que desencadenes la creación de los controles luego de presionar la tecla [Enter] o tras el evento Click de un botón. El evento TextChanged() se desencadena cada vez que el objeto asociado cambia de valor, ¿qué sucede si requieres generar 12 objetos de tipo TextBox? verás que primero se generará 1 objeto y luego 12, en total 13 objetos generados (1 objeto solapado).


    lunes, 20 de junio de 2016 0:05

Todas las respuestas

  • Hola Paulcarlin_S,

    Primeramente deberías especificar que lenguaje es, C# o Vb.Net ?

    [-] Como podría hacer, que cuando escriba en un Textbox1 ...

    Si quieres ejecutar el código al momento de escribir puedes usar el evento TextChanged del TextBox, pero antes tendrías que validar si el valor escrito corresponde a un número, caso contrario mostrar una alerta.

    Te dejo un ejemplo en Vb.Net.

    En este caso mi textBox se llama txtCantidad, en el cual escribiré el valor.

       Private Sub txtCantidad_TextChanged(sender As Object, e As EventArgs) _
                           Handles txtCantidad.TextChanged
    
            'Almacenará el valor si es un número
            Dim cantidad As Integer
    
            If Not Int32.TryParse(txtCantidad.Text, cantidad) Then
                MessageBox.Show("Ingrese un número")
                txtCantidad.Text = String.Empty 'Limpiamos
                Exit Sub 'Salimos
            End If
    
            'Espacio entre los TextBox a crear
            Dim espaciadoY = 25
    
            'Creo los TextBox
            For i = 1 To cantidad
                Dim txt As New TextBox
                txt.Location = New Point(txtCantidad.Location.X,
                                         txtCantidad.Location.Y + espaciadoY) 'El Y es el orden vertical
                espaciadoY += 25
                Me.Controls.Add(txt) 'Agrego al formulario
            Next
    
        End Sub

    Tomo como localización la coordenada de mi txtCantidad, para que aparezca en orden.

    Resultado :

    Teniendo esto :

     Dim txt As New TextBox

    Puedes acceder a las demás propiedades del TextBox mediante el txt.Propiedad.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 19 de junio de 2016 23:38
  • Paulcarlin_S,

    Te recomiendo que desencadenes la creación de los controles luego de presionar la tecla [Enter] o tras el evento Click de un botón. El evento TextChanged() se desencadena cada vez que el objeto asociado cambia de valor, ¿qué sucede si requieres generar 12 objetos de tipo TextBox? verás que primero se generará 1 objeto y luego 12, en total 13 objetos generados (1 objeto solapado).


    lunes, 20 de junio de 2016 0:05
  • Muchas Gracias Compañero 

    Un fuerte abrazo desde Piura

    lunes, 20 de junio de 2016 21:09
  • Buenas noches:

    Mi pregunta es la siguiente, tengo un DataGridView conectada a una base de datos Access con cuatro campos,  que van a ser llenados con datos numéricos, al momento de  llenar la fila 2 del DataGridView,  aparezca  cuatro textboxs con la información  ingresada en la fila 1 (4  primeros campos del DataGridView), y así sucesivamente; al momento de  llenar la fila 3 del DataGridView  aparezca  cuatro textboxs con la información  ingresada en la fila 2.

    En resumen que el número de cajas de texto dependan del numero de celdas del DataGridView.

    Uso Visual Basic.

    domingo, 26 de junio de 2016 5:07
  • Hola Paulcarlin_S,

    En pocas palabras siempre vas a mostrar los valores de la penúltima fila, ya que la última sería la que ingreses.

    Puedes hacer esto :

     Private Sub btnAgregarFila_Click(sender As Object, e As EventArgs) _
                     Handles btnAgregarFila.Click
    
            'Agregamos la fila
            agregarFila()
    
            'Obtenemos los datos de la fila anterior
            Dim fila As DataGridViewRow = DataGridView1.Rows(DataGridView1.RowCount - 1)
    
            TextBox1.Text = fila.Cells(0).Value.ToString
            TextBox2.Text = fila.Cells(1).Value.ToString
            TextBox3.Text = fila.Cells(2).Value.ToString
            TextBox4.Text = fila.Cells(3).Value.ToString
        End Sub

    Puedes sustituir el método agregar por tu código que agrega la fila (el cual será la última), y fila tomará el valor antecesor para obtener los valores.

    Cabe resaltar que tienes que tener esta propiedad en false, para que no aparezca una fila en blanco.

     DataGridView1.AllowUserToAddRows = False

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    domingo, 26 de junio de 2016 5:31
  • Buenas noches el código funciona,  pero no es lo que estoy buscando, deseo que al escribir en la primera fila del DataGridView (en los cuatro campos) me genere cuatro cajas de texto (al lado de mi DataGridView), y al momento de escribir en la la segunda fila del DataGridView me genere nuevas cajas de texto y así sucesivamente con el resto de filas del DataGridView.

    Es decir que por cada fila que llene en el DataGridView me aparezca cuatro textbox nuevos.

    Muchas gracias

    Saludos

    domingo, 26 de junio de 2016 6:15