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
Esta vez con VB6 y sin recrear el acceso a datos, si alguien lo considera necesario completamos el ejemplo.
De nuevo descargaros el proyecto VB6 desde el link de ‘attachments’
Espero que esta vez si te sirva, carlos.
Pep Lluis,
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’
«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.
- Pulsa ‘Ctrl+Alt+E’ (te aparecera la ventana de excepciones)
- Bajo ‘Managed Debugging Assistants’ busca ‘loaderlock’
- 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,
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’
Otro sitio realizado con WordPress