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