Como hacer que se cree un objeto a traves de otro objeto (¿se puede?)

Iniciado por Sin Nick xD, 14 Marzo 2008, 11:58 AM

0 Miembros y 1 Visitante están viendo este tema.

Sin Nick xD

Hola

Bien tratare de ser claro  :P

Ejemplo: dos botones

Botton1: me da un mensaje
Botton2: me da otros dos Bottones
Botton2.1: me da el mismo mensage que el Botton1
Botton2.2: me da otros dos Bottones

Y asi hasta el infinito y como es hasta el infinito por eso quiero que se creen y no esconderlos y despues mostrarlos que seria lo mas simple

se puede???
Yo solo creería en un Dios que supiese bailar.

darkraider

 Definí el clic del boton para que cree dos botones con el construcor por copia, llamando a un método recursivo. Entonces a cada boton se le asigna el evento clic al mismo método que crea los dos botones... Una suerte de recursividad indirecta... Salu2
Curioso de mi...

Sin Nick xD

Ok muchas gracias

No te entendi bien pero voy a seguir investigando

Aunque si puedes poner un pequeño ejemplo o enlase o consejo lo que sea serias mi heroe

un saludo ^Ç^
Yo solo creería en un Dios que supiese bailar.

Hadess_inf

#3
Crear un sub que agrege ambos botones

sub menu()
dim b1 as new button
dim b2 as new button
b1.width=100 : b1.height= 30
b2.width=100 : b2.height= 30
b1.top = 0: b2.top = 0
b1.left = 0 : b2.left = b1.width + 10
me.controls.add(b1)
me.controls.add(b2)
addhandler b1.click,addressof mensaje
addhandler b2.click,addressof agrega
end sub

sub mensaje(yVal sender As System.Object, ByVal e As System.EventArgs)
msgbox "Este es elmensaje"
end sub

sub agrega(yVal sender As System.Object, ByVal e As System.EventArgs)
dim obj as new button
obj = ctype(sender,button)
dim to as integer = obj.top + obj.height + 10
dim b1 as new button
dim b2 as new button
b1.width=100 : b1.height= 30
b2.width=100 : b2.height= 30
b1.top = to: b2.top = to
b1.left = 0 : b2.left = b1.width + 10
me.controls.add(b1)
me.controls.add(b2)
addhandler b1.click,addressof mensaje
addhandler b2.click,addressof agrega
end sub

sub form_load (...)
menu
end sub

Espero que sirva y que no tenga ningun error porque lo he hecho de la volada, si necesitas alguna explicacion, me avisas,pòr ahora no ando entrando mucho al foro porque me han cortado el internet... wtf ... telefonica de *****....aaaa.... Recuerda agregar el sub en el load del formulario.
Saludos.

Sin Nick xD

Yo solo creería en un Dios que supiese bailar.

Hadess_inf


Sin Nick xD

Pues no de el todo pero dejame seguirle la pista a tu code


cuando lo consiga lo posteare
Yo solo creería en un Dios que supiese bailar.

Hadess_inf

En vista que recien me han restaurado mi internet ya puedo decirte que parte estuvo mal del codigo que postee, pues lo unico malo es que habia puesto una variable, para ser mas especifico to, solo la e reemplazado por tt. Aqui el code funcionando perfectamente testeado. Saludos

CitarPublic Class Form1
    Sub menu()
        Dim b1 As New button
        Dim b2 As New button
        b1.width = 100 : b1.height = 30
        b2.width = 100 : b2.height = 30
        b1.top = 0 : b2.top = 0
        b1.left = 0 : b2.left = b1.width + 10
        Me.controls.add(b1)
        Me.controls.add(b2)
        AddHandler b1.click, AddressOf mensaje
        AddHandler b2.click, AddressOf agrega
    End Sub

    Sub mensaje(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MsgBox("Este es elmensaje")
    End Sub

    Sub agrega(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim obj As New Button
        obj = CType(sender, Button)
        Dim tt As Integer = obj.Top + obj.Height + 10
        Dim b1 As New Button
        Dim b2 As New Button
        b1.Width = 100 : b1.Height = 30
        b2.Width = 100 : b2.Height = 30
        b1.Top = tt : b2.Top = tt
        b1.Left = 0 : b2.Left = b1.Width + 10
        Me.Controls.Add(b1)
        Me.Controls.Add(b2)
        AddHandler b1.Click, AddressOf mensaje
        AddHandler b2.Click, AddressOf agrega
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        menu()
    End Sub
End Class

Sin Nick xD

Ya lo habia descubierto  ;D ;D

Otra duda ¿como ponerle texto a los botones cambiarlos de color etc ? , ¿es igual como si fuera cualquier boton ? algo asi como

Me.Button1.Bakcolor = Color.Black

Salu2 y que bueno que restauraron el ser,vicio XDD
Yo solo creería en un Dios que supiese bailar.

Hadess_inf

Claro para cambiar el fondo solo tienes que establecer la propiedad de los botones en este caso:

Citarb1.text = "Texto 1"
b2.text = "Texto 2"

Saludos.