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

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

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

Видео: Пропускане на променливи между Windows Формуляри Windows без ShowDialog ()
Видео: Perfmon & PAL Troubleshooting and Analyzing Windows and Windows applications using perfmon and PAL - YouTube 2024, Може
Anonim

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

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

Бързият начин за предаване на променливи между формулярите използва делегатите. Можете да задавате EventHandler за събитието за затваряне на втория формуляр и да обработвате събитието в първата форма. Това ви позволява да заснемете променливи преди втория прозорец на формата да е затворен.

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

MainForm

OptionsForm

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

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

}

Това е всичко за него.

Препоръчано: