/ / Předat proměnné mezi Windows Forms Windows bez ShowDialog ()

Předávání proměnných mezi Windows Forms Windows bez ShowDialog ()

Při programování aplikace Windows Forms budete vždy potřebovat získat proměnné z druhého okna formuláře, například formuláře voleb nebo výzvy k vyskakování.

Většina průvodců tam vám to řeknemusíte otevřít druhý formulář pomocí programu ShowDialog (), který uživateli blokuje dělat cokoli jiného, ​​dokud nezavřou druhé okno formuláře. To například nebude fungovat pro dialogové okno Najít / nahradit. Také nebude dobře fungovat pro vlastní nakreslené vyskakovací formuláře.

Rychlý způsob předávání proměnných mezi formulářipoužívá delegáty. Pro událost Uzavření druhého formuláře můžete nastavit správce událostí a událost zpracovat v prvním formuláři. To vám umožní zachytit proměnné před uzavřením druhého okna formuláře.

Pro toto cvičení budeme předpokládat, že máme dvě formy:

MainForm

MožnostiForm

Budeme dále předpokládat, že jsme klikli na nějaké tlačítko, které otevře volání metody OptionsForm pomocí volání metody Show (). Nyní se podívejme na kouzlo:

……. stříhat ......

OptionsForm theform = new OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();

}

private void theform_Closing (odesílatel objektu, CancelEventArgs e)
{

OptionsForm theform = (OptionsForm) odesílatel;

// Získat proměnnou z formuláře voleb. Formulář voleb by měl tuto proměnnou nastavit před jejím zavřením a proměnná by měla být označena jako veřejná.
string localvar = theform.thestringvariable;

}

To je všechno.