Aunque como siempre empezaremos diciendo que este ejemplo responde a las inquietudes de algunas consultas recibidas sobre MDI y de nuevo intentando darle un aire desenfadado, os dejo esta idea para clarificar… o liaros mas en el concepto de heredar.
Espero vuestros comentarios… eso si, que sean amables y con cariño.
Pep Lluis,
‘ Un clasico caso de Herencias…
‘
Public Class ElPadre
”
” Construir el entorno en tiempo de carga ”
Private Sub ElPadre_Load() Handles MyBase.Load
‘ Me declaro contenedor de toda mi descendencia
Me.IsMdiContainer = True
Me.Text = “Soy el Progenitor, Padre de algunos y Abuelo de otros”
‘ Mi primer Hijo tendra un boton para crear mas hijos
Dim CrearFormHijo As New Button
CrearFormHijo.Text = “Tener un hijo”
CrearFormHijo.Dock = DockStyle.Top
Me.Controls.Add(CrearFormHijo)
‘ Invocar la funcion de Crear, al hacer click
AddHandler CrearFormHijo.Click, AddressOf Crear
End Sub
”
” Crear y Definir el Aspecto de los Hijos del Padre y sus Nietos
”
Private Sub Crear()
‘
‘Definir la primera linea de descendencia
Dim FormHijo As New MiForm(Me)
FormHijo.Text = “Yo Soy el Hijo – Descendencia directa”
‘Presentar al nieto en sociedad
FormHijo.Show()
‘
‘Definir la segunda linea tomando la primera
‘como referencia y añadiendo nuevas particularidades
Dim FormNieto As New MiForm(Me)
FormNieto.Text = “Yo Soy el Nieto”
‘
‘Los nietos tienen dos botones… peazo xoyo!
Dim BotonDelNieto As New Button
BotonDelNieto.Name = “BotonDelNieto”
BotonDelNieto.Text = “Abuelo! Que hora es?”
BotonDelNieto.Dock = DockStyle.Bottom
FormNieto.Controls.Add(BotonDelNieto)
‘
‘Llamar al Abuelo al pulsar el boton de todos los descendientes
AddHandler BotonDelNieto.Click, AddressOf FormHijo.llamarAPapa
‘
‘Llamar al verdadero padre, sobre el boton particular de los nietos
AddHandler FormNieto.Controls.Item(0).Click, AddressOf FormNieto.YoSoyElVerdaderoPadre
‘Presentar al nieto en sociedad
FormNieto.Show()
End Sub
‘
‘ solo mis hijos y nietos saben la hora
‘
Public Function MensajeDePapa() As String
Return “Son las “ + System.DateTime.Now
End Function End Class
”
” Origen “genetico” de todos mis form’s
”
Public Class MiForm
‘ A su vez heredo todas las particularidades de WinForms
Inherits Form ‘ La referencia a mi antepasado
Private MiPadre As Object
‘
‘ Nacimiento!
‘
Sub New(ByVal padre As Object)
‘ Referenciar y no olvidar mis origenes
MiPadre = padre
MdiParent = MiPadre
‘
‘ Mi descendencia heredara un boton mas que yo.
‘
Dim BotonDelHijo As New Button
BotonDelHijo.Name = “BotonDelHijo”
BotonDelHijo.Text = “Papa!… que hora es?”
BotonDelHijo.Dock = DockStyle.Top
Controls.Add(BotonDelHijo)
‘ Llamar a mi papa por click en boton del hijo
AddHandler BotonDelHijo.Click, AddressOf llamarAPapa
End Sub
‘
‘ LLamar a papa
‘
Sub llamarAPapa()
MessageBox.Show(MiPadre.mensajeDePapa, “Ummm…”)
End Sub
‘
‘ Llamar a mis antecesores… eres tu abuelo?
‘
Sub YoSoyElVerdaderoPadre()
MessageBox.Show(” Yo soy tu verdadero padre!!”, “Aunque te respondio Mi padre”)
End Sub
End Class