Начална » как да » Пропускане на променливи между Windows Forms Windows без ShowDialog ()

    Пропускане на променливи между Windows Forms Windows без ShowDialog ()

    Когато програмирате приложение на Windows Forms, винаги ще трябва да получавате променливи от втори прозорец на формуляр, като например формуляр за опции или изскачащ прозорец за търсене.

    Повечето от водачите ще ви кажат, че трябва да отворите втората форма с ShowDialog (), която блокира потребителя да прави нещо друго, докато не затворят втория прозорец на формата. Това например няма да работи много добре за диалоговия прозорец за намиране / замяна. Той също така няма да работи много добре за потребителски изготвен popup форми.

    Най-бързият начин за прехвърляне на променливи между формулярите е използването на Делегати. Можете да зададете събитие за събитие за събитие на затваряне от втората форма и да управлявате събитието в първата форма. Това ви позволява да заснемате променливи преди затварянето на втория прозорец на формуляра.

    За това упражнение ще приемем, че имаме две форми:

    MainForm

    OptionsForm

    Предполагаме още, че сме натиснали някакъв бутон, който отваря OptionsForm с показване на метод Show (). Сега нека разгледаме магията:

    …. парченце ... .

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

    private void theform_Closing (подател на обект, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) подател;

    // Вземете променливата от формата за опции. Формулярът за опции трябва да зададе тази променлива, преди тя да се затвори, а променливата да бъде маркирана като публична.
    string localvar = theform.thestringвидим;

    Това е всичко.