mardi 24 janvier 2012

Pasar variables entre formularios Windows Forms Windows sin ShowDialog ()

Cuando se está programando una aplicación de Windows Forms, que siempre será necesario para obtener las variables de una ventana de la segunda forma, como una forma de opciones o del sistema de búsqueda contextual.

La mayoría de las guías por ahí te dirá que tienes que abrir la segunda forma con ShowDialog (), que bloquea al usuario de hacer cualquier otra cosa hasta que se haya cerrado la ventana del segundo formulario. Esto no va a funcionar muy bien para un cuadro de diálogo de buscar / reemplazar, por ejemplo. También no va a funcionar muy bien para formularios personalizados elaborados emergente.

La forma rápida de pasar variables entre las formas es mediante delegados. Se puede configurar un EventHandler para el evento de clausura de la segunda forma, y ​​controlar el evento en la primera forma. Esto le permite captar las variables antes de la ventana de la segunda forma se ha cerrado.

Para este ejercicio, vamos a suponer que tenemos dos formas:

MainForm

OptionsForm

Vamos a suponer, además, que hemos hecho clic en una especie de botón que abre el OptionsForm con un Show () llamada al método. Ahora echemos un vistazo a la magia:

....... cortar .......

OptionsForm theform = new OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show();

}

private void theform_Closing (object sender, CancelEventArgs e)
{

OptionsForm theform = (OptionsForm) del remitente;

/ / Se obtiene la variable de la forma de opciones. La forma de las opciones debe establecer esta variable antes de que cierre, y la variable debe ser marcado como público.
cadena localvar = theform.thestringvariable;

}

Eso es todo lo que hay que hacer.

Aucun commentaire:

Enregistrer un commentaire