Página principal » cómo » Pase variables entre formularios Windows Forms sin ShowDialog ()

    Pase variables entre formularios Windows Forms sin ShowDialog ()

    Cuando esté programando una aplicación de Windows Forms, siempre necesitará obtener variables de una segunda ventana de formulario, como un formulario de opciones o una solicitud de búsqueda emergente.

    La mayoría de las guías le dirán que tiene que abrir el segundo formulario con ShowDialog (), que impide que el usuario haga otra cosa hasta que haya cerrado la segunda ventana del formulario. Esto no funcionará muy bien para un diálogo de búsqueda / reemplazo, por ejemplo. Tampoco funcionará muy bien para formularios emergentes dibujados personalizados.

    La forma rápida de pasar variables entre los formularios es usar delegados. Puede configurar un controlador de eventos para el evento de cierre del segundo formulario y manejar el evento en el primer formulario. Esto le permite capturar variables antes de que se haya cerrado la segunda ventana de formulario.

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

    Forma principal

    OpcionesForm

    Supondremos además que hemos hecho clic en algún tipo de botón que abre el formulario de Opciones con una llamada al método Show (). Ahora echemos un vistazo a la magia:

    ... recorte… .

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

    privado void theform_Closing (objeto remitente, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) sender;

    // Agarra la variable del formulario de opciones. El formulario de opciones debe establecer esta variable antes de que se cierre, y la variable debe marcarse como pública.
    cadena localvar = theform.thestringvariable;

    Eso es todo al respecto.