Siirrä muuttujia Windows-lomakkeiden välillä ilman ShowDialogia ()
Kun ohjelmoit Windows Forms -sovelluksen, sinun on aina saatava muuttujat toisesta lomakkeen ikkunasta, kuten vaihtoehdoista tai ponnahdusikkunasta..
Suurin osa siellä olevista oppaista kertoo, että sinun on avattava toinen lomake ShowDialog (): lla, joka estää käyttäjää tekemästä mitään muuta, kunnes ne ovat sulkeneet toisen lomakkeen ikkunan. Tämä ei toimi kovin hyvin esimerkiksi etsintä- / vaihto-valintaikkunassa. Se ei myöskään toimi hyvin sovitettujen ponnahdusikkunoiden muodossa.
Nopea tapa siirtää muuttujia lomakkeiden välillä on edustajien käytössä. Voit asettaa tapahtumanohjaimen toisen lomakkeen sulkeutumistapahtumaan ja käsitellä tapahtumaa ensimmäisessä muodossa. Tämän avulla voit kaapata muuttujia ennen toisen lomakkeen ikkunan sulkeutumista.
Tätä harjoitusta varten oletamme, että meillä on kaksi muotoa:
MainForm
OptionsForm
Oletamme lisäksi, että olemme napsauttaneet jonkinlaista painiketta, joka avaa OptionsForm-ohjelman Show () -menetelmäkutsulla. Katsokaamme nyt taikaa:
…. leikata… .
OptionsForm theform = uusi AsetuksetForm ();
theform.Closing + = uusi CancelEventHandler (theform_Closing);
theform.Show ();yksityinen void theform_Closing (objektin lähettäjä, CancelEventArgs e)
OptionsForm theform = (ValinnatForm) lähettäjä;
// Tartu muuttujaan vaihtoehdoista. Vaihtoehtomuodon pitäisi asettaa tämä muuttuja ennen sen sulkemista, ja muuttujan tulisi olla julkinen.
merkkijono localvar = theform.thestringvariable;
Se on kaikki siinä.