Domovská » jak » Procházet proměnné mezi Windows Forms Windows bez ShowDialog ()

    Procházet proměnné mezi Windows Forms Windows bez ShowDialog ()

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

    Většina průvodců tam 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á cesta pro předávání proměnných mezi formuláři používá Delegáti. 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é před uzavřením druhého okna formuláře.

    Pro toto cvičení předpokládáme, ž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 magii:

    .... snip ... .

    MožnostiForm theform = new OptionsForm ();
    theform.Closing + = nový CancelEventHandler (theform_Closing);
    theform.Show ();

    private void theform_Closing (odesílatele objektu, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) odesílatele;

    // Uchopte proměnnou z formuláře možností. Formulář voleb by měl nastavit tuto proměnnou ještě předtím, než se zavře, a proměnná by měla být označena jako veřejná.
    řetězec localvar = theform.thestringvariable;

    To je vše, co je k tomu.