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.