Úvodná » ako » Prenášať premenné medzi formulármi Windows Windows bez ShowDialog ()

    Prenášať premenné medzi formulármi Windows Windows bez ShowDialog ()

    Keď naprogramujete aplikáciu Windows Forms, vždy budete musieť získať premenné z druhého okna formulára, napríklad formulár s voľbami alebo výzva na vyhľadávanie pop-up.

    Väčšina sprievodcov vám povie, že musíte otvoriť druhý formulár pomocou programu ShowDialog (), ktorý zabraňuje používateľovi robiť čokoľvek iného, ​​kým neuzavrie druhé okno formulára. To nebude fungovať veľmi dobre napríklad v dialógu nájsť / nahradiť. To tiež nebude fungovať veľmi dobre pre vlastné nakreslené vyskakovacie formuláre.

    Rýchly spôsob prenosu premenných medzi formulármi používa delegátov. Môžete nastaviť eventhandler pre udalosť ukončenia druhého formulára a spracovať udalosť v prvom formulári. To vám umožní zachytiť premenné skôr, ako sa zatvorí druhé okno formulára.

    Pre toto cvičenie budeme predpokladať, že máme dve formy:

    MainForm

    OptionsForm

    Budeme ďalej predpokladať, že sme klikli na nejaké tlačidlo, ktoré otvorí OptionsForm s volaním metódy Show (). Teraz sa pozrime na kúzlo:

    .... odstrihnúť ... .

    MožnostiForm theform = new OptionsForm ();
    theform.Closing + = nový CancelEventHandler (theform_Closing);
    theform.Show ();

    súkromné ​​neplatné theform_Closing (odosielateľ objektu, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) odosielateľ;

    // Uchopte premennú z formulára možností. Formulár možností by mal túto premennú nastaviť predtým, ako sa zatvorí a premenná by sa mala označiť ako verejná.
    reťazec localvar = theform.thestringvariable;

    To je všetko pre to.