none
Crear TextBox en tiempo de Ejecución componiendo el nombre del Control RRS feed

  • Pregunta

  • Hola a todos/as.

    Estoy intentando crear controles en tiempo de ejecución como podría ser un TextBox o un Label o de echo cualquiera, a partir de la composición del nombre del control, ya que debo de crear varios y por ejemplo cada uno de ellos los diferenciaré con el contenido numérico que tendré en una variable, al estilo de "TextBox textBox + var.ToString() = new TextBox();"

    Si alguien tiene alguna idea o ejemplo al respecto se lo agradezco.

    Saludos.

    miércoles, 18 de marzo de 2009 7:47

Respuestas

  • Hola que tal,

    Lo suyo seria que la variable que te indique cuantos se van a crear y la pongas dentro de un bucle for...
    con eso el nombre aunque no sea muy adecuado podrias construirlo tal que asi:

    for contador=0 to variable-1
    dim ct as new textbox
    ct.name="CajaTexto&" & contador
    next contador
    • Propuesto como respuesta jtorrecillaModerator miércoles, 18 de marzo de 2009 11:24
    • Marcado como respuesta Joanca lunes, 23 de marzo de 2009 16:31
    miércoles, 18 de marzo de 2009 11:22
    Moderador

Todas las respuestas

  • Hola Joan,

    Deberas explotar la propiedad name del objeto.

    1Sub CrearTextBoxTiempoEjecución() 
    2 
    3   Dim ctrlTextBoxDNI as new TextBox 
    4   ctrlTextBoxDNI.Name = "tbDNI" 
    5   'Resto de propiedades (ubicación, dimensiones, tabulación, etcétera) 
    6 
    7End Sub 


    Espero que te sirva

    Un saludo

    Eduardo Ortega
    http://www.etropicalia.es


    • Propuesto como respuesta Eduardo Ortega miércoles, 18 de marzo de 2009 10:04
    miércoles, 18 de marzo de 2009 10:04
  • Hola Eduardo y gracias por atenderme.

    Te voy siguiendo, es decir, que vaya creando los TextBoxes dándoles inicialmente el nombre que quiera, y a posteriori les pongo el nombre final en la Propiedad "Name".

    Lo veo bien, siempre y cuando sepas de antemano cuantos Controles vas a crear, pero si no lo sabes ya que depende de una situación dinámica que se produce en tiempo de ejecución, estoy en las mismas ya que no se como indicarle el nombre.

    Si se te ocurre algo ya me dirás.

    Saludos.

     

    miércoles, 18 de marzo de 2009 10:40
  • Hola que tal,

    Lo suyo seria que la variable que te indique cuantos se van a crear y la pongas dentro de un bucle for...
    con eso el nombre aunque no sea muy adecuado podrias construirlo tal que asi:

    for contador=0 to variable-1
    dim ct as new textbox
    ct.name="CajaTexto&" & contador
    next contador
    • Propuesto como respuesta jtorrecillaModerator miércoles, 18 de marzo de 2009 11:24
    • Marcado como respuesta Joanca lunes, 23 de marzo de 2009 16:31
    miércoles, 18 de marzo de 2009 11:22
    Moderador
  • Hola Joan,

    El código que te mostré es comó darle un nombre concreto a un control. Tal como te indica jtorrecilla deberás crear un bucle.... y si lo necesitas puedes traer datos específicos para asignarlos a los controles que vayas a crear.

    Un saludo

    Eduardo Ortega


    miércoles, 18 de marzo de 2009 13:44
  • Hola Eduardo y JTorrecilla.

    He probado vuestra solución con el bucle y funciona perfecto en la creación, pero a posteriori el problema lo tengo a la hora de referenciarme a cada uno de ellos por separado por ejemplo en la gestión del evento "Click", para por ejemplo modificarle Propiedades específicas de dicho control ya sea un TextBox, Label, GroupBox, etc ..., como podría ser el "BackGroudColor", ya que al intentar referenciarlo:

    "this.panelBox.Controls["groupBox" + this.iVar.ToString().Trim()].ForeColor = Color.Aqua;"

    pués resulta que solamente puedo referenciar a Propiedades Generales de los Controles como es el caso del "ForeColor", pero no específica de dicho control.

    No se si hay alguna manera dentro de los Eventos de poder hacer dicha referencia para ese control virtual.

    Si alguien tiene alguna idea o ejemplo se lo agradezco.

    Saludos.

    lunes, 23 de marzo de 2009 8:12
  • como hago si esta caja de texto la quiero ubicar en un form distinto al que se está ejecutando?????
    Luis Zambrano
    sábado, 13 de agosto de 2011 19:50