Programmējot Windows Forms lietojumprogrammu, jums vienmēr būs jāiegūst mainīgie lielumi no otrās formas loga, piemēram, opciju formas vai uznirstošās meklēšanas vaicājuma.
Lielākā daļa norādīto ceļvežu jums pateiks, ka jums ir jāatver otrā veidlapa ar ShowDialog (), kas neļauj lietotājam kaut ko darīt, līdz tiek slēgts otrais veidlapas logs. Piemēram, tas nedarbosies ļoti labi, ja atradīsit / nomainīsiet dialoglodziņu. Tā arī nedarbosies ļoti labi pielāgotai uznirstošajām veidlapām.
Ātrs veids, kā nodot mainīgos starp veidlapām, ir Delegātu izmantošana. Varat iestatīt notikuma pārvaldnieku otrās veidlapas Noslēguma notikumam un rīkoties ar notikumu pirmajā formā. Tas ļauj ierakstīt mainīgos pirms otrā veidlapas loga aizvēršanas.
Šim uzdevumam mēs domājam, ka mums ir divas formas:
MainForm
OptionsForm
Mēs turpināsim pieņemt, ka esam noklikšķinājuši uz kādas pogas, kas atver Opcijas formu ar Show () metodi. Tagad pievērsīsimies burvībai:
... izgriezt ...
OptionsForm theform = jauni OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();
privāts void theform_Closing (objekta sūtītājs, CancelEventArgs e)
OptionsForm theform = (OptionsForm) sūtītājs;
// Novietojiet mainīgo no opciju formas. Iespēju formā šim mainīgajam lielumam jābūt iestatītam, pirms tas tiek aizvērts, un mainīgais ir jāatzīmē kā publiski.
virkne localvar = theform.thestringvariable;
Tas viss ir tā.