Početna » kako da » Prosljeđivanje varijabli između Windows Forms sustava Windows bez ShowDialog ()

    Prosljeđivanje varijabli između Windows Forms sustava Windows bez ShowDialog ()

    Kada programirate aplikaciju Windows Forms, uvijek ćete morati dobiti varijable iz drugog prozora obrasca, kao što je obrazac za opcije ili prompt za skočni prozor za pretraživanje.

    Većina vodiča će vam reći da morate otvoriti drugi obrazac s ShowDialog (), koji onemogućuje korisniku da radi bilo što drugo dok ne zatvore drugi prozor obrasca. To, na primjer, neće dobro funkcionirati za dijalog za pronalaženje / zamjenu. Također neće dobro funkcionirati za prilagođene nacrtane popup obrasce.

    Brzi način prosljeđivanja varijabli između obrazaca koristi delegate. Možete postaviti eventhandler za događaj zatvaranja drugog obrasca, i obraditi događaj u prvom obliku. To vam omogućuje hvatanje varijabli prije nego što se drugi prozor obrasca zatvori.

    Za ovu vježbu pretpostavit ćemo da imamo dva oblika:

    MainForm

    OptionsForm

    Nadalje ćemo pretpostaviti da smo kliknuli na neku vrstu gumba koji otvara OptionsForm s Show () pozivom metode. Pogledajmo sada magiju:

    …. odrezati… .

    OptionsForm theform = new OptionsForm ();
    theform.Closing + = novi CancelEventHandler (theform_Closing);
    theform.Show ();

    private void theform_Closing (objekt pošiljatelj, CancelEventArgs e)

    OptionsForm theform = (OpcijaForm) pošiljatelja;

    // Uzmite varijablu iz obrasca opcija. Obrazac opcija treba postaviti ovu varijablu prije nego se ona zatvori, a varijabla treba biti označena kao javna.
    string localvar = theform.thestring varijabilan;

    To je sve.