none
Usar controles creados en tiempo de ejecución

    Pregunta

  • Buenas tardes, espero alguien me pueda ayudar con esta situación, estoy creando múltiples botones en tiempo de ejecución de la siguiente manera:

     For i As Integer = 1 To 10
                Dim Btn As New Button
                With Btn
                    .name = "Btn" & i
                    .Height = 25
                    .Width = 120
                    .Top = (i - 1) * 25
                End With
                Panel1.Controls.Add(Btn)
     Next

    La cuestion es que no se como utilizar los controles creados, es decir si quiero utilizar el Boton con el nombre "Btn3" como le hago para hacerlo?

    Cuando es creado en tiempo de diseño lo mas facil es decir Panel1.Btn3.Text = "Texto de boton",

    pero cuando se crea en tiempo de ejecucion, ¿como hago para utilizar los botones "llamandolos" por su nombre?

    Espero alguien me pueda ayudar con esta situacion. De antemano muchas gracias.


    viernes, 25 de noviembre de 2016 0:08

Respuestas

  • Hola CARLOS DANIEL ZARATE RAMIREZ 092,

    Puedes hacer :

    Dim btn3 = TryCast(Me.Panel1.Controls("Btn3"), Button)
    
    If btn3 IsNot Nothing Then  'Si no es nulo
        btn3.BackColor = Color.Red
    End If

    O usando Linq  :

    Dim btn3 = Me.Panel1.Controls.OfType(Of Button).FirstOrDefault(Function(x) x.Name = "Btn3")
    
    If btn3 IsNot Nothing Then  'Si lo encontró
        btn3.BackColor = Color.Red
    End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 25 de noviembre de 2016 0:25

Todas las respuestas

  • Hola CARLOS DANIEL ZARATE RAMIREZ 092,

    Puedes hacer :

    Dim btn3 = TryCast(Me.Panel1.Controls("Btn3"), Button)
    
    If btn3 IsNot Nothing Then  'Si no es nulo
        btn3.BackColor = Color.Red
    End If

    O usando Linq  :

    Dim btn3 = Me.Panel1.Controls.OfType(Of Button).FirstOrDefault(Function(x) x.Name = "Btn3")
    
    If btn3 IsNot Nothing Then  'Si lo encontró
        btn3.BackColor = Color.Red
    End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 25 de noviembre de 2016 0:25
  • Gracias hermano, de verdad me has sacado de un verdadero problema en un ratito, estuve con ese dolor de cabeza varios días. Gracias. Te debo una
    viernes, 25 de noviembre de 2016 0:39