Változók átvitele a Windows Forms Windows között ShowDialog nélkül ()
Amikor egy Windows Forms alkalmazást programoz, mindig szükség lesz a változókra egy második űrlapablakból, például egy opcióformából vagy a felugró keresőből..
Az ott található útmutatók többsége azt fogja mondani, hogy a második formanyomtatványt a ShowDialog () segítségével kell megnyitnia, ami megakadályozza, hogy a felhasználó bármit mást csináljon, amíg bezárja a második űrlapot. Ez például nem fog jól működni egy kereső / cserélő párbeszédablakhoz. Ez nem fog jól működni az egyéni húzott űrlapokhoz.
A változók gyors átvitelének módja a küldöttek használata. Beállíthat egy eseménykezelőt a második űrlap záró eseménye számára, és az első formában kezelheti az eseményt. Ez lehetővé teszi, hogy a második formátumablak bezárása előtt változókat rögzítsen.
Ehhez a gyakorlathoz feltételezzük, hogy két formánk van:
MainForm
OptionsForm
Feltételezzük továbbá, hogy rákattintunk valamilyen gombra, amely megnyitja az OptionsForm-ot egy Show () metódussal. Most nézzük meg a varázslatot:
…. lenyisszant… .
OpciókForm aform = új beállításokForm ();
theform.Closing + = új CancelEventHandler (theform_Closing);
theform.Show ();private void theform_Closing (objektumküldő, CancelEventArgs e)
OptionsForm theform = (OpciókForm) küldő;
// Fogja meg a változót az opciókból. A beállítási űrlapnak ezt a változót a zárás előtt kell beállítania, és a változót nyilvánosnak kell jelölni.
string localvar = theform.thestringvariable;
Ez az egész.