Variabelen doorgeven tussen Windows Forms Windows zonder ShowDialog ()
Wanneer u een Windows Forms-toepassing programmeert, moet u altijd variabelen van een tweede formuliervenster krijgen, zoals een optievorm of pop-upzoekopdracht.
De meeste gidsen vertellen u dat u het tweede formulier moet openen met ShowDialog (), waardoor de gebruiker niets meer kan doen totdat het tweede formuliervenster is gesloten. Dit werkt bijvoorbeeld niet goed voor een zoek / vervang-dialoogvenster. Het zal ook niet erg goed werken voor op maat gemaakte pop-upvormen.
De snelle manier om variabelen tussen de formulieren door te geven, is met behulp van Delegates. U kunt een gebeurtenisafhandelingsroutine instellen voor de gebeurtenis Afsluiting van het tweede formulier en de gebeurtenis in de eerste vorm afhandelen. Hiermee kunt u variabelen vastleggen voordat het tweede formuliervenster is gesloten.
Voor deze oefening gaan we ervan uit dat we twee vormen hebben:
Belangrijkste vorm
OptionsForm
We gaan er verder vanuit dat we op een knop hebben geklikt die het OptionsForm opent met een methode-aanroep Show (). Laten we nu eens kijken naar de magie:
.... knip… .
OptionsForm theform = new OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();private void theform_Closing (object afzender, CancelEventArgs e)
OptionsForm theform = (OptionsForm) afzender;
// Pak de variabele uit het optiesformulier. Het optiesformulier moet deze variabele instellen voordat deze wordt gesloten en de variabele moet als openbaar worden gemarkeerd.
string localvar = theform.thestringvariable;
Dat is alles wat er is.