Crear controles dinámicamente y controlar sus eventos

2047 vistas

El código que mostramos a continuación, crea 10 controles CheckBox, los añade a un ListBox y controla su evento CheckedChanged.



vbnet
  1. Private Sub BTNClick(ByVal sender As Object, ByVal e As EventArgs) Handles BTN.Click
  2.   Dim i As Integer
  3.   Dim x As CheckBox
  4.   For i = 1 To 10
  5.     x = New CheckBox()
  6.     x.Name = "MiCheck" & i.ToString()
  7.     ' ponemos los CheckBox uno debajo de los otros
  8.     x.Left = 10
  9.     x.Top = i * 20
  10.     x.Width = 150
  11.     x.Text = "Estamos en el Check " &  i.ToString()
  12.     ' unimos CheckedChanged al método común MisCheckCheckedChanged
  13.     AddHandler x.CheckedChanged, AddressOf Me.MisCheckCheckedChanged
  14.     ' añadimos el checkbox al ListBox
  15.     Me.ListBox1.Controls.Add(x)           
  16.   Next
  17. End Sub
  18.  
  19. Private Sub MisCheckCheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
  20.   Dim cbx As CheckBox = CType(sender, CheckBox)
  21.   MessageBox.Show("Es estado de " & cbx.Name & " es " & cbx.Checked.ToString())
  22. End Sub