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


 

Compartir una Clase (VbDosFormsUnaBd)

Atendiendo la solicitud de Carlos…


Bueno mi pregunta es la siguiente, tengo dos formularios el primero busca un nombre mediante un inputbox y encuentra el nombre y despliega nombre y apellidos mediante dos textbox, en este formulario quiero poner un boton que diga “Ver” y que me abra el otro formulario que ya tengo y me muestre direccion, telefono, edad, etc de ese nombre que encontro, la conexion de la tabla es con access mediante ado.
Gracias!!”


Os adjunto un ejemplo muy simple de como compartir una clase entre dos Forms.
Espero vuestras sugerencias.
Pep Lluis,


Como siempre podeis descargaros el ejemplo de ‘attachments’

Visual Studio, LoaderLock con proyectos que Utilizan DirectX o WinSocks.

LoaderLock managed debugging assistant (MDA) detects attempts to execute managed code on a thread that holds the Microsoft Windows operating system loader lock. Any such execution is illegal because it can lead to deadlocks and to use of DLLs before they have been initialized by the operating system’s loader.”


O sea que los MDA’s detectan que estamos intentando ejecutar codigo administrado en un hilo que el cargador del sistema operativo tiene bloqueado, cualquier ejecucion es ilegal pues prodria perder los vinculos con los ‘deadlocks’ y usar las DLL’s antes de que estas hubieran sido inicializadas por el cargador del sistema operativo.


Acostumbra a ser un ‘toston’ en fases de desarrollo, pues solo afecta a los Debuggers, para poder sortear esta dificultat simplemente tienes que deshabilitar la opcion ‘loaderlock’ de Visual Studio.



  1. Pulsa ‘Ctrl+Alt+E’ (te aparecera la ventana de excepciones)

  2. Bajo ‘Managed Debugging Assistants’ busca ‘loaderlock’ 

  3. Click para dejarlo sin seleccion.

¡Listo! Cuando te pongas a trabajar… solo tendras que aceptar la advertencia de bloqueo… pero nada mas.


Saludos,
Pep Lluis,

VB Hablame!

Aprovechando la inquietud de algunos de vosotros en tanto a ‘TextSpeech’ y con la intencion de romper el hielo, os dejo un ejemplo muy simple de como hacer hablar a la Srta. Anna con tan solo una linea, usando el ‘System.Speech’.


Saludos,
Espero Vuestros comentarios…
Pep Lluis,


PD. Como siempre el proyecto ejemplo en ‘Attachments’