Pass-változók a Windows Forms-ok között Windows ShowDialog nélkül ()

Pass-változók a Windows Forms-ok között Windows ShowDialog nélkül ()
Pass-változók a Windows Forms-ok között Windows ShowDialog nélkül ()

Videó: Pass-változók a Windows Forms-ok között Windows ShowDialog nélkül ()

Videó: Pass-változók a Windows Forms-ok között Windows ShowDialog nélkül ()
Videó: Set Different Wallpapers on Multiple Monitors in Windows 10 (Simple How to) - YouTube 2024, Április
Anonim

Amikor Windows Forms alkalmazást programoz, mindig meg kell adnia a változókat egy második űrlap ablakból, például egy opcionális űrlapból vagy egy felugró keresési kérésből.

A legtöbb útmutatók azt mondják, hogy a második űrlapot a ShowDialog () programmal kell megnyitni, ami megakadályozza a felhasználót abban, hogy bármi mást csináljon, amíg bezárják a második űrlapot. Például ez nem fog jól működni a találati / kicserélési párbeszédpanelen. Nem fog jól működni a megszokott popup űrlapoknál sem.

A formák közötti változók átvitelének gyors módja a Delegátumok használata. Beállíthat egy eseménykiszolgálót a második űrlap záró eseményére, és kezelheti az eseményt az első formában. Ez lehetővé teszi a változók rögzítését a második űrlap bezárása előtt.

Ehhez a gyakorlathoz azt feltételezzük, hogy két formája van:

MainForm

OptionsForm

Továbbá feltételezzük, hogy rákattintunk valamilyen gombra, amely megnyitja az OptionsFormot Show () metódushívással. Most vessünk egy pillantást a mágiára:

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

}

Ez mindennek megvan.

Ajánlott: