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:
……. 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;
}
Tas viss ir tā.