none
Cómo construir un nuevo TextBox desde un Bucle (for)

    Question

  • Buen dia comunidad.

    Tengo un formulario donde quiero preguntar "Cuantos usuarios desea agregar..." y en un Combo Box voy a poner opciones marcadas del del 1 al 5 y quiero que cuando alguien seleccione por ej. el numero 3 este se convierta en 3 textboxes, mi duda es como construyo un nuevo textbox dentro del for.

     

    Code Snippet

            for (int i = 1; i <= 5; i++)
            {

                      ¿Cómo carambas le hago aqui para crear nuevos textboxes?
            }

     

    Tuesday, July 17, 2007 4:03 PM

Answers

  • Hola

    De la siguiente manera se pueden crear TextBox en tiempo de ejecución.

    Code Snippet

    for (int i = 1; i <= 5; i++)
    {

    TextBox justTimeTextBox = new TextBox(); //instanciamos nuestro nuevo TextBox
    //

    //aqui asignamos las propiedades a nuestro justTimeTextBox.
    //
    this.Controls.Add(justTimeTextBox); //finalmente lo agregamos a nuestro Form
    }


    Tuesday, July 17, 2007 8:00 PM

All replies

  • Hola

    De la siguiente manera se pueden crear TextBox en tiempo de ejecución.

    Code Snippet

    for (int i = 1; i <= 5; i++)
    {

    TextBox justTimeTextBox = new TextBox(); //instanciamos nuestro nuevo TextBox
    //

    //aqui asignamos las propiedades a nuestro justTimeTextBox.
    //
    this.Controls.Add(justTimeTextBox); //finalmente lo agregamos a nuestro Form
    }


    Tuesday, July 17, 2007 8:00 PM
  • Inmejorable esto esta super y me funciono a la maravilla, te agrego mi codigo final con una pequeña mejora.

    Code Snippet

    for (int i = 1; i <= 5; i++)
      {
       TextBox justTimeTextBox = new TextBox(); //instanciamos nuestro nuevo TextBox
       Page.Form.Controls.AddAt(1,justTimeTextBox); //finalmente lo agregamos a nuestro Form
      }

     

    Saludos

    Wednesday, July 18, 2007 12:34 AM
  • Carlos

     

    Buenas tardes, nuevamente por aqui pidiendo solucion a mis dudas.

     

    Este codigo que me enviaste esta bueno solo que me surgieron el resto de las dudas y estas son principalmente como le asigno al nuevo control ID y un texto (Lado cliente), es decir al agrearse un nuevo control este se autoasigna un ID, pero la propiedad text del control se queda en blanco por ejemplo en un checkbox, solo se ve el cuadrito y el texto se ve en blanco, como podria solucionar esto?

     

    y la ultima consulta es como le digo en que celda de una tabla(html) se van a colocar los nuevos objetos que se vayan creando.

     

    Code Snippet

    string strcmd = @"SELECT SM.GROUPUID FROM SYSMEMBERS SM INNER JOIN SYSUSERS SU ON SM.MEMBERUID = SU.UID WHERE MEMBERUID != 1 AND SU.NAME = '" + TextBox1.Text.ToString()+ "'";
            try
            {
                SqlConnection cnx = new SqlConnection(strcnx);
                SqlCommand cmd = new SqlCommand(strcmd, cnx);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                ds.Clear();
                da.Fill(ds);
                cmd.Connection = cnx;
                cnx.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    CheckBox cb = new CheckBox();
                    Page.Form.Controls.Add(cb);  //Aqui como le seteo la propiedad text

    //al nuevo objeto


                }
                lblsuc.Text = "Execute OK";
                cnx.Close();
            }
            catch (SqlException ex)
            {
                lblerr.Text = ex.Message;
            }

     

     

     

    Gracias y buen dia.

    Thursday, July 26, 2007 9:55 PM
  • Hola


    Es tan simple como esto

    Code Snippet

                while (dr.Read())
                {
                    CheckBox cb = new CheckBox();

               // puede ser antes ó despues de agregar el control al Form
     cb.Text = "Mi Texto"; //tan simple como eso
     Page.Form.Controls.Add(cb);

                }



    La segunda pregunta no sabria responderla, debido a que noce nada de html =(, tal vez alguien mas si =)


    Espero sea lo que necesitas.

    Thursday, July 26, 2007 10:02 PM
  • Hola...soy nuevo en esto de c# y tengo una pequeña duda y espero que por favor me puedan ayudar....

    Uso Visual studio 2005 y estoy diseñando una aplicación Windows(grafica) ya he tratatado ya muchas veces de agregar un nuevo control de tipo TextBox tal y como lo hicieron con los checkbox pero dentro de un ciclo for de 10 elementos y solo me agrega uno en la misma posición, tambien los puse en : procedimientos separados, en el Form1_Load(), en el constructor,  en un CommandButton() y ninguno parece que me hiciera caso

    estos fueron algunos de mis intentos

    for (int x = 1; x < =10; x++)

    {         TextBox cb = new TextBox();

    this.Controls.Add(cb);

    }

    Con este me agrega solo uno en la misma posición (o sea en la posición 0,0 del Form1)

    ---------------------------------------------------------------------

    int ejey=0;

    for (int x = 1; x < =10; x++)

    {         TextBox cb = new TextBox();

    cb.Location.Offset(10, ejey);

    this.Controls.Add(cb);

    ejey=ejey+10;

    }

    Con este pensé que tal vez estaban sobreencimados y que era el problema...pero no fue así.

    -------------------------------------------------------------------

    for (int x = 1; x < =10; x++)

    {       this.Controls.Add(new TextBox());

    }

    Y por ultimo lo intente de esta nueva forma y de todos modos hace lo mismo

    --------------------------------------------------------------

    Me gustaría saber que es lo que debo hacer para que me salgan por lo menos 10 de estos TextBox separados por una buena distancia ya que son para una base de datos... y si no es mucha molestia como tendría que hacerle para utilizarlos por el nuevo nombre que le pondré a cada uno de los textBox(va a depender de el nombre de los campos de la consulta select), por ejemplo: "update tbtabla1 set nombre = ' "+nombre.text+" ' ;"

    Claro la seguda pregunta es opcional..no pido mucho, solo hasta donde estoy atascado...aunque si puedes mejor.

    De antemano se que es mejor con un DataGrid o DataGridView pero no es ese mi proposito y es que usa mucho codigo tambien.

    Y la verdad ya estoy un poquito desesperado por que no me hace caso la aplicación y tengo que entregar esta tarea

    antes de noviembre ya que estoy en examenes finales

    Y muchisimas gracias por leer mi mensaje
    Wednesday, October 24, 2007 2:08 PM
  • parece que yo mismo solucione el problema, el problema se encontraba en... de donde obtiene los puntos x,y anteriormente de offset...

    Investigando un poquito mas en mi propia aplicación encontre que debería declarar la posición de cada TextBox cb como

    cb.Location = new System.Drawing.Point(x, y);

    ahora se notó grandemente el cambio, de todas maneras sigue en pie mi segunda pregunta

    --------------------------------------------------------------------------------------------------------------------------------------

    como tendría que hacerle para utilizarlos por el nuevo nombre que le pondré a cada uno de los TextBox(que van a depender de el nombre de los campos de la consulta select), por ejemplo: "update tbtabla1 set nombre = ' "+nombre.text+" ' ;"

    ___________________________________________________________

    Igual.. yo si puedo obtener el tipo de campo, valor y nombre de cada campo de la tabla y asignarle esos valores a mis controles.

    Solo me falta el saber como llamar a un control llamado id_campo, nombre, etc. para regresarle su valor nuevamente a la tabla en mysql

    Ojala haya resuelto la duda en este foro, y que posteriormente me puedan apoyar

    Gracias y espero respuesta

    Wednesday, October 24, 2007 7:04 PM
  • Buenas compañeros yo tengo la siguiente duda:
    estoy realizando una aplicacion donde dependiendo de la cantidad de filas en una base de datos mysql necesito generar check box con el nombre de esos campos y ademas a eso validar que he seleccionado esos campos he utilizado el codigo de ariba y me a funcionado perfecto pero necesito validar los checkbox que selecciono para nuevamente hacer un insert ya que como lo tengo actualmente solo me inserta el valor de la ultima fila del check box espero poderme dar a entender , se los agradezco mucho pd espero en el futuro poder ayudarles de igual manera

    Wednesday, October 12, 2011 2:30 PM