Pagina principala » HOWTO » Pass variabile între Windows Forms Ferestre fără ShowDialog ()

    Pass variabile între Windows Forms Ferestre fără ShowDialog ()

    Când programați o aplicație Windows Forms, va trebui invariabil să obțineți variabile dintr-o a doua fereastră de formular, cum ar fi un formular de opțiuni sau un prompt de căutare pop-up.

    Majoritatea ghidurilor de acolo vă vor spune că trebuie să deschideți al doilea formular cu ShowDialog (), care împiedică utilizatorul să facă altceva până când închid a doua fereastră de formular. Acest lucru nu va funcționa foarte bine pentru un dialog de căutare / înlocuire, de exemplu. De asemenea, nu va funcționa foarte bine pentru formularele tip pop-up personalizate.

    Modul rapid de trecere a variabilelor între formulare utilizează delegați. Puteți seta un eventhandler pentru evenimentul de închidere al celui de-al doilea formular și puteți gestiona evenimentul în prima formă. Aceasta vă permite să capturați variabile înainte de închiderea celei de-a doua ferestre de formular.

    Pentru acest exercițiu, vom presupune că avem două forme:

    MainForm

    OptionsForm

    Vom presupune și că am făcut clic pe un buton care deschide opțiunea OptionsForm cu un apel de tip Show (). Acum, să aruncăm o privire la magie:

    .... croitor… .

    OpțiuniFormăform = noua opțiuneFormă ();
    theform.Closing + = new CancelEventHandler (theform_Closing);
    theform.Show ();

    private void theform_Closing (expeditor obiect, CancelEventArgs e)

    OpțiuniFormulormal = (OpțiuniForm) expeditor;

    // Prindeți variabila din formularul de opțiuni. Formularul de opțiuni trebuie să stabilească această variabilă înainte de a se închide, iar variabila ar trebui să fie marcată ca fiind publică.
    string localvar = theform.thestringvariable;

    Cam despre asta e.