Ver Mensaje Individual
  #4  
Antiguo 10-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez por ignorancia que a mí no se me ocurre ahora mismo sino lo típico, supongo: declarar una variable "global" dentro de la clase del "Form1", que mantenga una referencia a cierto objeto "Form2". Cuando se precise mostrar el formulario "Form2" se mirará si dicha variable es "null", y, en caso de que lo sea crear y mostrar el formulario "Form2", y, en caso de que no lo sea (lo cual nos indicará que el objeto ya ha sido creado, obviamente) levantar una excepción o simplemente darle el "foco" al formulario "Form2" previamente creado.

Es mucho más sencillo de ver con algo de código:


Código:
namespace WindowsApplication1
{
  public partial class Form1 : Form
  {
	// Variable "global" en que guardar una 
	// referencia a un objeto de tipo "Form2"
	public Form2 form2 = null;

	// Constructor de "Form1"
	public Form1()
	{
	  InitializeComponent();
	}

	// Evento "Click" de un botón en "Form1"
	private void button1_Click(object sender, EventArgs e)
	{
	  if (form2 == null) // ¿"form2" es aún "null"?
	  {
		form2 = new Form2(); // Creamos un objeto "Form2"
		form2.MdiParent = this; // Lo emparentamos ;-)
		form2.Show(); // Y lo mostramos
	  }
	  else // ¿"form2" ya tiene una referencia válida?
	  {
		form2.Focus(); // Damos el foco al formulario "Form2"
		//throw new Exception("Ya existe el formulario");
	  }
	}
  }
}
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 10-12-2005 a las 09:55:44. Razón: Edición del texto.
Responder Con Cita