objetos

11/06/2005 - 15:31 por kike | Informe spam
hola:
quiero saber si se pueden crear objetos en modo ejecucion es decir que yo
ponga en un texbox 3 y me cree 3 Labels WithEvents o ponga 10 y me cree 10
labels
gracias
 

Leer las respuestas

#1 Nicolás Ocaña
11/06/2005 - 22:04 | Informe spam
Necesitas para este ejemplo un Button1 y un TextBox1. Cosas importantes
a tener encuenta:

1. Para ligar eventos en tiempo de ejecución se usa AddHandler, fijate
que se le pasa una referencia del metodo que quieres usar en el evento
(Con AddressOf).
2. Para que el control se vea correctamente tendras que rellenaralgunas
propiedades como posicion y tamaño, y muy importante añadirlo a la lista
de controles del control padre (Se usa la propiedad Controls, con Add
añades uno, con AddRange añades un conjunto y con Remove eliminas uno),
además algunos controles necesitan que llames a su metodo Show() o poner
su propiedad Visible a True.

Este ejemplo tiene un problema por el cual no te recomiendo que lo uses
tal cual ya que no se tiene control de los labeles creados con
anterioridad. Pero vamos eso ya es facil. Te lo dejo a tí.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
Try
i = Integer.Parse(TextBox1.Text)
Catch
MsgBox(TextBox1.Text & " no es un número válido")
End Try

If i > 0 Then
Dim n As Integer
For n = 1 To i
Dim nuevolabel As New Label()
nuevolabel.Name = "label" & n
nuevolabel.Text = "label" & n
nuevolabel.Left = 10
nuevolabel.Top = n * 20
nuevolabel.AutoSize = True
AddHandler nuevolabel.Click, AddressOf EventoLabeles
Me.Controls.Add(nuevolabel)
Next
End If
End Sub

Private Sub EventoLabeles(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Dim milabel As Label = sender
MsgBox(milabel.Text & " te dice: 'hola'")
End Sub


kike escribió:
hola:
quiero saber si se pueden crear objetos en modo ejecucion es decir que yo
ponga en un texbox 3 y me cree 3 Labels WithEvents o ponga 10 y me cree 10
labels
gracias



Preguntas similares