none
Ejecutar evento ante control generado en programación RRS feed

  • Pregunta

  • He creado en un winform un panel mediante diseño y por programación en su interior crea unos radiobutton. A priori no sé cuantos se van a crear, pero quiero que hagan una cosa cuando se active uno de ellos.

    La pregunta es: ¿Cómo lo hago si no puedo crear un evento que reacciones a un click sobre alguno de ellos?

     

    Gracias por su respuesta.

     

    miércoles, 14 de enero de 2009 20:43

Todas las respuestas

  • Hola Pacum,

     

    ¿Cómo que no puedes enlazarte a un evento del radiobutton?

    Para hacerlo programaticamente, debes hacerlo tal que así:

     

    Code Snippet

    private void crearControles()

    {

    RadioButton rbutton = new RadioButton();

    rbutton.Click += new EventHandler(rbutton_Click);

    }

     

    void rbutton_Click(object sender, EventArgs e)

    {

    //Aqui haces lo que necesitas hacer cuando hagan click en el radiobutton

    }

     

     

    Espero que te sirva!

     

    Si es así, porfavor, marca la respuesta como válida! Wink

     

    Gracias y suerte!

    miércoles, 14 de enero de 2009 22:00
  • Gracias por tan rápida contestación pero ¿sería rizar el rizo en VB?
    jueves, 15 de enero de 2009 6:52
  • Voy a poner la rutina llamada para poner los radiobutton

    Private Sub cargaprecios(ByVal dr As DataRow, ByVal fila As Integer, ByVal maximo As Integer)

    Dim Y As Integer = (fila * 25 + 15)

    Dim Turno(maximo) As TextBox

    Dim elec(maximo) As RadioButton

    Dim Nombre(maximo) As TextBox

    Dim Precio(maximo) As TextBox

     

    elec(fila) = New RadioButton

    elec(fila).Name = dr("Id precio").ToString

    elec(fila).Location = New Point(1, Y)

    elec(fila).Size = New Size(12, 20)

    Datos.Controls.Add(elec(fila))

    elec(fila).Text = ""

     

    Nombre(fila) = New TextBox

    Nombre(fila).Name = "Nombre" & fila

    Nombre(fila).Location = New Point(13, Y)

    Nombre(fila).Size = New Size(210, 20)

    Datos.Controls.Add(Nombre(fila))

    Nombre(fila).Text = dr("Nombre").ToString

    Nombre(fila).ReadOnly = True

    Nombre(fila).TabStop = False

     

    Precio(fila) = New TextBox

    Precio(fila).Name = "precio" & fila

    Precio(fila).Location = New Point(235, Y)

    Precio(fila).Size = New Size(50, 20)

    Datos.Controls.Add(Precio(fila))

    Precio(fila).Text = dr("precio").ToString & " €"

    Precio(fila).ReadOnly = True

    Precio(fila).TabStop = False

    Turno(fila) = New TextBox

    Turno(fila).Name = "turno" & fila

    Turno(fila).Location = New Point(287, Y)

    Turno(fila).Size = New Size(70, 20)

    Datos.Controls.Add(Turno(fila))

    Turno(fila).Text = seleccionaturno(dr("Turno").ToString)

    Turno(fila).ReadOnly = True

    Turno(fila).TabStop = False

     

    End Sub

     

    Y lo que quiero es que en el momento en el que haga click en uno de ellos ya se ejecute otro procedimiento.

    domingo, 18 de enero de 2009 10:40