Hjemmeside » hvordan » Pass Variabler mellom Windows Forms Windows uten ShowDialog ()

    Pass Variabler mellom Windows Forms Windows uten ShowDialog ()

    Når du programmerer en Windows Forms-applikasjon, må du alltid få variabler fra et annet skjermvindu, for eksempel et valgskjema eller en popup-søkeprompt.

    De fleste guider der ute vil fortelle deg at du må åpne den andre skjemaet med ShowDialog (), som blokkerer brukeren fra å gjøre noe annet før de har lukket det andre skjermvinduet. Dette vil ikke fungere veldig bra for en finne / erstattingsdialog, for eksempel. Det vil heller ikke fungere veldig bra for tilpassede trukket popup-skjemaer.

    Den raske måten å passere variabler mellom skjemaene, er ved hjelp av delegerte. Du kan angi en eventhandler for Lukkhendelsen av den andre skjemaet, og håndter hendelsen i det første skjemaet. Dette lar deg fange variabler før det andre skjermvinduet er stengt.

    For denne øvelsen kommer vi til å anta at vi har to former:

    MainForm

    OptionsForm

    Vi skal videre anta at vi har klikket på en slags knapp som åpner OptionsForm med et Show () -metodeanrop. La oss nå se på magien:

    .... klipp ... .

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

    privat ugyldig theform_Closing (objekt avsender, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) avsender;

    // Ta tak i variabelen fra alternativskjemaet. Alternativet skal angi denne variabelen før den lukkes, og variabelen skal merkes som offentlig.
    streng localvar = theform.thestringvariable;

    Det er alt der er til det.