Un clasico caso de herencias entre padres e hijos

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


 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *