Mainīt mainīgos starp Windows veidlapām Windows bez ShowDialog ()

Mainīt mainīgos starp Windows veidlapām Windows bez ShowDialog ()
Mainīt mainīgos starp Windows veidlapām Windows bez ShowDialog ()

Video: Mainīt mainīgos starp Windows veidlapām Windows bez ShowDialog ()

Video: Mainīt mainīgos starp Windows veidlapām Windows bez ShowDialog ()
Video: Set Different Wallpapers on Multiple Monitors in Windows 10 (Simple How to) - YouTube 2024, Aprīlis
Anonim

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ā.

Ieteicams: