Foros del Web » Programación para mayores de 30 ;) » .NET »

abrir formulario una sola vez

Estas en el tema de abrir formulario una sola vez en el foro de .NET en Foros del Web. hola gente tengo el siguiente problema tengo un form 1 que es container y un form 2 que es parent ahora como lo hago para ...
  #1 (permalink)  
Antiguo 28/02/2008, 10:43
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
abrir formulario una sola vez

hola gente tengo el siguiente problema

tengo un form 1 que es container y un form 2 que es parent

ahora como lo hago para que el form2 se pueda abrir solamente una vez??
  #2 (permalink)  
Antiguo 28/02/2008, 16:45
Avatar de juamurex  
Fecha de Ingreso: febrero-2007
Ubicación: Gandía (Valencia)
Mensajes: 18
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: abrir formulario una sola vez

Hola,

existe un patrón de diseño cuya utilidad hacer que sólo pueda existir una instancia de una determinada clase, el patrón en concreto se llama "Singleton", me ha sido bastante útil, aunque nunca lo he aplicado a Formularios Windows. Buscando por ahí he encontrado unas páginas que te podrían resultar interesantes:

Este ejemplo es sobre Formularios Windows.
http://weblogs.asp.net/rosherove/archive/2004/01/23/62071.aspx

Este aplicado una clase normal.
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=486

Espero que te pueda servir de ayuda, saludos.
  #3 (permalink)  
Antiguo 28/02/2008, 17:22
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: abrir formulario una sola vez

Puedes crear un metodo como el siguiente en el q envias el tipo de forma child a mostrar y validara si existe activandolo y si no creandolo

public void ShowForm(Type FormType)
{
Form TargetForm = null;

foreach(Form child in this.MdiChildren)
if(child.GetType().Equals(FormType))
TargetForm = child;

if(TargetForm == null)
TargetForm = (Form)Activator.CreateInstance(FormType);

TargetForm.Show();
}


Saludos
Peter
  #4 (permalink)  
Antiguo 29/02/2008, 10:28
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: abrir formulario una sola vez

muchas gracias peterpay :D!

private static Form2 m_FormDefInstance;
public static Form2 DefInstance
{
get
{
if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed)
m_FormDefInstance = new Form2();
return m_FormDefInstance;
}
set
{
m_FormDefInstance = value;
}
}



Form2.DefInstance.Show();

es una forma que encontre y me servio bastante ^^! ;D luego pruebo tu codigo y comento !!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:22.