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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Kike
13/06/2005 - 08:48 | Informe spam
Gracias, perfecto.

"Nicolás Ocaña" escribió en el mensaje
news:d8fg39$7lo$
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
>
>
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida