Pass-muuttujat Windows-lomakkeiden välillä Windows ilman ShowDialogia ()

Pass-muuttujat Windows-lomakkeiden välillä Windows ilman ShowDialogia ()
Pass-muuttujat Windows-lomakkeiden välillä Windows ilman ShowDialogia ()

Video: Pass-muuttujat Windows-lomakkeiden välillä Windows ilman ShowDialogia ()

Video: Pass-muuttujat Windows-lomakkeiden välillä Windows ilman ShowDialogia ()
Video: OM opetusvideo 4: Kaksoisnäytön asetukset Windows 10:ssä - YouTube 2024, Huhtikuu
Anonim

Kun ohjelmoit Windows Forms -sovellusta, tarvitset aina muuttujia toisesta lomakeikkunasta, kuten vaihtoehdon lomakkeesta tai ponnahdusikkunan hakupyynnistä.

Suurin osa oppaista siellä kertoo, että sinun on avattava toinen lomake ShowDialog () -ohjelmalla, joka estää käyttäjän tekemästä mitään muuta, kunnes he ovat sulkenneet toisen lomakkeen ikkunan. Tämä ei kuitenkaan toimi kovin hyvin löytää / korvaava valintaikkuna. Se ei myöskään toimi kovin hyvin muokatuilla popup-lomakkeilla.

Nopea tapa välittää muuttujia lomakkeiden välillä on käyttää lähetystöjä. Voit asettaa tapahtumanhallinnan toisen lomakkeen sulkemistapahtumaan ja käsitellä tapahtuman ensimmäisessä muodossa. Näin voit kaapata muuttujat ennen kuin toinen lomakeikkuna on suljettu.

Tätä harjoitusta varten aiomme olettaa, että meillä on kaksi muotoa:

MainForm

OptionsForm

Aiomme edelleen olettaa, että olemme napsauttaneet jonkinlaista painiketta, joka avaa OptionsFormin Show () -menetelmäpuhelun avulla. Katsotaan nyt taikaa:

……. 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;

}

Siinä kaikki on.

Suositeltava: