Prenašanje spremenljivk med različicami programa Windows Forms brez programa ShowDialog ()
Ko programirate aplikacijo Windows Forms, boste vedno morali dobiti spremenljivke iz drugega okna obrazca, kot je obrazec za možnosti ali poziv za pojavno okno..
Večina vodnikov vam bo povedala, da morate odpreti drugi obrazec s programom ShowDialog (), ki uporabniku preprečuje, da bi karkoli počel, dokler ne zapre drugega okna obrazca. To na primer ne bo delovalo dobro za pogovorno okno za iskanje / zamenjavo. Prav tako ne bo delovala zelo dobro za po meri narisane popup obrazce.
Hitro prenašanje spremenljivk med obrazci uporablja delegate. Za dogodek zapiranja drugega obrazca lahko nastavite eventhandler in obdržite dogodek v prvi obliki. To vam omogoča zajemanje spremenljivk, preden se zapre okno drugega obrazca.
Za to vajo bomo domnevali, da imamo dve obliki:
MainForm
OptionsForm
Predvidevamo tudi, da smo kliknili nekakšen gumb, ki odpre OptionsForm s klicem metode Show (). Zdaj pa si poglejmo magijo:
…. izreži ... .
OptionsForm theform = novo OptionsForm ();
theform.Closing + = novo CancelEventHandler (theform_Closing);
theform.Show ();private void theform_Closing (pošiljatelj objektov, CancelEventArgs e)
OptionsForm theform = (Oblika obrazca) pošiljatelja;
// Vzemite spremenljivko iz obrazca opcij. Oblika možnosti mora nastaviti to spremenljivko, preden se zapre, spremenljivko pa je treba označiti kot javno.
string localvar = theform.thestringvariable;
To je vse.