Muutuvad muutujad Windowsi vormide vahel ilma ShowDialog ()
Windows Forms'i rakenduse programmeerimisel peate alati saama teisest vormiaknast muutujaid, näiteks suvandite vormi või hüpikotsingut..
Enamik sealseid juhendeid ütleb teile, et teine vorm tuleb avada ShowDialogiga (), mis blokeerib kasutajal midagi muud, kuni nad on teise vormi akna sulgenud. See ei toimi näiteks leidmise / asendamise dialoogi puhul väga hästi. Samuti ei tööta see hästi kohandatud hüpikaknad.
Kiire viis muutujate edastamiseks vormide vahel kasutab delegaate. Teise vormi sulgemise sündmuse jaoks on võimalik määrata sündmuse käitaja ja korraldada sündmus esimeses vormis. See võimaldab salvestada muutujaid enne teise vormi akna sulgemist.
Selle harjutuse puhul eeldame, et meil on kaks vormi:
MainForm
ValikudForm
Eeldame veel, et oleme klõpsanud mingisugusele nupule, mis avab suvandi OptionsForm koos Show () meetodikutsega. Vaatame nüüd maagiat:
…. snip… .
ValikudForm theform = uus ValikudForm ();
theform.Closing + = uus CancelEventHandler (theform_Closing);
theform.Show ();privaatne tühine theform_Closing (objekti saatja, CancelEventArgs e)
ValikudForm theform = (ValikudForm) saatja;
// Võta muutuja valikuvormilt. Valiku vorm peaks selle muutuja enne sulgemist seadistama ning muutuja peab olema avalik.
string localvar = theform.thestringvariable;
See on kõik selleks.