Saber de los Hijos de un MDI

Una pregunta frecuente sobre los “Multiple Document Interfaces’ es como saber los forms que estan cargados en un momento determinado. Aqui os dejo un breve y como siempre ‘Simple’ ejemplo, para tener acceso a la lista de documentos cargados en un MDI.


Por supuesto faltara recorrer la lista de items en el ‘menuItem’ para procesar las decisiones en funcion a los forms cargados, pero supongo que esa es la parte facil… supongo bien?…


Cualquier sugerencia o comentario sera bien recibido,
Saludos,
Pep Lluis,

Public Class Form1   
  ‘   
  ‘Al cargar el form
   
  ‘
   
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       ‘El form1 se convierte en un MDIContainer
        Me.IsMdiContainer = True
        ‘Crear un nuevo boton para añadir
        Dim MiBoton As New Button
        MiBoton.Text = “Añadir”
        MiBoton.Dock = DockStyle.Bottom
        ‘Apuntar a la funcion de añadir al hacer click al boton
        AddHandler MiBoton.Click, AddressOf NuevoFormHijo
        ‘Añadir un boton al final del MDI
        Me.Controls.Add(MiBoton)
        ‘Crear un nuevo Menu
        Dim MiMenu As MainMenu = New MainMenu
        Me.Menu = MiMenu
        ‘Anadir item de forms cargados al menu
        Dim misForms As MenuItem = MiMenu.MenuItems.Add(“&Forms Cargados”)
        ‘este item debera visualizar la MdiList
        misForms.MdiList = True
    End Sub
   
    ‘Añadir un nuevo form al contenedor MDI
   
    Private Sub NuevoFormHijo(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim UnHijoMas As New Form
        UnHijoMas.Text = “He Nacido a las : “ + System.DateTime.Now
        UnHijoMas.MdiParent = Me
        UnHijoMas.Show()
    End Sub

End Class


 

3 thoughts on “Saber de los Hijos de un MDI”

  1. Una sugerencia: no estaría de más advertir que el uso de MDI en las aplicaciones de hoy en día está desrecomendado. Existen otras cosas como el OwnerForm, etc… para conseguir algo similar (o los tabs que están tan de moda).

  2. Hola don Rafael! un placer.
    Gracias por tu aporte.
    Mi respuesta discrepa ya que depende de la solucion que estemos desarrollando, mientras exista una solucion MDI significa que esta cubriendo una necesidad concreta a un sector de desarrolladores concreto, por lo que considero totalmente viable usarla, otro tema es aplicarla en una situacion de una manera incorrecta.
    Como bien dices las increibles posibilidades de los nuevos entornos en todo caso se merecen un poco de imaginacion y dar un renovado aspecto a nuestras soluciones… pero, como siempre las nuevas tecnologias finalmente van imponiendose a las viejas… o sea que tiempo al tiempo, aunque para pena de algunos las propiedades de un Windows.Form en VS2008 tambien tiene la propiedad IsMdiContainer :-( ¿porque sera?
    Cuidate y un fuerte Abrazo,
    Pep Lluis,

  3. Hola. yo tengo una duda con respecto a una aplicacion MDI, no la puedo cerrar tengo algo parecido alo que usted hace por mas que presiono la X no cierra.(esto ocuarre cuando abro la ventana y cambio el formulario activo con una opcion de un Menustrip)

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>