Prejsť premenné medzi formulármi Windows Windows bez ShowDialog ()

Prejsť premenné medzi formulármi Windows Windows bez ShowDialog ()
Prejsť premenné medzi formulármi Windows Windows bez ShowDialog ()

Video: Prejsť premenné medzi formulármi Windows Windows bez ShowDialog ()

Video: Prejsť premenné medzi formulármi Windows Windows bez ShowDialog ()
Video: Sony's FDR-AX33 vs FDR-AX53 vs FDR-AX100 Which to Choose? 4k UltraHD Choices! - YouTube 2024, Apríl
Anonim

Pri programovaní aplikácie Windows Forms budete vždy musieť získať premenné z druhého okna formulára, ako napríklad formulár s možnosťami alebo výzva na vyhľadávanie pop-up.

Väčšina sprievodcov vám povie, že musíte otvoriť druhý formulár pomocou aplikácie ShowDialog (), ktorá zabraňuje používateľovi robiť čokoľvek iné, 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 umožňuje zachytiť premenné predtým, 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:

……. snip…….

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

}

private void theform_Closing(object sender, CancelEventArgs e) {

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

To je všetko, čo je k tomu.

Odporúča: