Como evitar repetir una Forma en un Contenedor Principal MDI

Cuando desarrollamos aplicaciones mas complejas, que llevan mas de unas cuantas formas es importante designar un contenedor principal para todas las demás formas que se abrirán dentro del menú principal, cuando hayamos dominado esta técnica tendremos algunas otras dudas, por ejemplo como manejar el no abrir mas de una misma forma en un contenedor principal siempre y cuando sea esto necesario, dependiendo de la naturaleza de tu aplicación y de tus formas, habrá ocasiones en las que sea necesario hacerlo y en algunas otras no para cuando este sea el caso podemos utilizar la siguiente validación que nos permitirá saber si una forma ya se encuentra abierta y posicionarnos en ella de ser necesario.
Tutorial C# : MDI Parent


El MDI Parent o contenedor principal, es una forma en Windows que contendrá todas aquellas otras formas de tu aplicación, es el equivalente a una MasterPage en ASP.NET solo que en un ambiente de escritorio, para definir una forma padre basta con localizar las propiedades de la forma e indicar MDIParent en true, una vez hecho esto se le asignara un área que sera la encargada de albergar a las otras formas que se llamen mediante esta.

Validando que un Form ya se encuentra abierto

Para hacer esto basta con agregar el siguiente código c# en donde llamemos a la forma que por lo regular sera en alguna parte del toolstrip menú:

Primero declaramos fuera una variable Form general y le llamaremos Forma:

Lo que sigue después es asignar a esa variable la forma que abriremos y una vez asignada ver si ya se encuentra abierta:



Una vez hecho esto validaremos que una forma no se encuentre abierta, en este ejemplo mostramos un mensaje pero solo es indicativo tu decides si mostrarlo o solo hacer el Focus a la forma.

Comentarios

  1. Respuestas
    1. Pero que no funciona, cabe mencionar que este código es solo para las ultimas versiones del .NET Framework.

      Eliminar
  2. muy buen código funciona al 100 me quito de problemas =)

    ResponderEliminar
  3. funciona a la perfeccion muy bueno

    ResponderEliminar
  4. Excelente!, llevaba horas buscando una solución y esto me sirvió perfectamente!

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Chart en C# - Control para Graficos en Windows Form

Llenar un DropdownList con Datos ASP.NET C#

Crear un Sistema con conexión a BD paso a paso C#