Muutujate muutmine Windowsi vormide vahel ilma ShowDialogi ()

Muutujate muutmine Windowsi vormide vahel ilma ShowDialogi ()
Muutujate muutmine Windowsi vormide vahel ilma ShowDialogi ()

Video: Muutujate muutmine Windowsi vormide vahel ilma ShowDialogi ()

Video: Muutujate muutmine Windowsi vormide vahel ilma ShowDialogi ()
Video: Windows 10: Alten, inkompatiblen Drucker installieren (Anleitung Treiberinstallation) - YouTube 2024, Aprill
Anonim

Kui programmeerite rakendust Windows Forms, peate alati võtma muutujaid teisest vormi akendist, näiteks valikuvormi või hüpiktekst.

Enamik seal välja toodud juhenditest ütleb sulle, et peate avama teise vormi ShowDialogiga (), mis blokeerib kasutaja midagi muud, kuni nad on teise vormi akna suletud. Näiteks lehe / asendamise dialoogi puhul see ei toimi väga hästi. See ei toimi ka kohandatud popup-vormide jaoks.

Võimaluste kiireks edastamiseks vormide vahel on Delegaatide kasutamine. Saate määrata teise vormi sulgemise sündmuse EventHandler ja käidelda sündmuse esimeses vormis. See võimaldab salvestada muutujaid enne teise vormi akna sulgemist.

Selle harjutuse jaoks eeldame, et meil on kaks vormi:

MainForm

OptionsForm

Me kavatseme veelgi eeldada, et oleme klõpsanud mõnevõrra nupul, mis avab OptionsFormi Show () meetodi kõnega. Nüüd vaatame magicat:

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

}

See on kõik selleks.

Soovitan: