Při programování aplikace Windows Forms budete muset vždy dostávat proměnné z druhého okna formuláře, například formuláře s volbami nebo výzvou pro vyskakovací okna.

Většina průvodců vám řekne, že musíte otevřít druhý formulář s ShowDialog (), který zabraňuje uživateli dělat cokoli jiného, ​​dokud neuzavře druhé okno formuláře. To nebude fungovat velmi dobře například při hledání / nahrazení dialogu. Také nebude fungovat velmi dobře pro vytažené popup formuláře.

Rychlý způsob předávání proměnných mezi formuláři je pomocí Delegátů. Můžete nastavit eventhandler pro událost zavření druhého formuláře a zpracovat událost v prvním formuláři. To umožňuje zachytit proměnné dříve, než se okno druhého formuláře zavře.

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

MainForm

OptionsForm

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

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

}

To je vše, co je k tomu.

Nejlepší Tipy:
Komentář: