Startseite » wie man » Übergeben von Variablen zwischen Windows Forms Windows ohne ShowDialog ()

    Übergeben von Variablen zwischen Windows Forms Windows ohne ShowDialog ()

    Wenn Sie eine Windows Forms-Anwendung programmieren, müssen Sie immer Variablen aus einem zweiten Formularfenster erhalten, z. B. ein Optionsformular oder eine Popup-Suchaufforderung.

    Die meisten Handbücher dort werden Ihnen sagen, dass Sie das zweite Formular mit ShowDialog () öffnen müssen, was den Benutzer daran hindert, etwas anderes zu tun, bis er das zweite Formularfenster geschlossen hat. Dies funktioniert zum Beispiel für ein Suchen / Ersetzen-Dialogfeld nicht sehr gut. Es funktioniert auch nicht sehr gut für benutzerdefinierte Popup-Formulare.

    Die schnelle Möglichkeit, Variablen zwischen den Formularen zu übergeben, ist die Verwendung von Delegaten. Sie können einen Eventhandler für das Closing-Ereignis des zweiten Formulars festlegen und das Ereignis im ersten Formular behandeln. Dadurch können Sie Variablen erfassen, bevor das zweite Formularfenster geschlossen wurde.

    Für diese Übung gehen wir davon aus, dass wir zwei Formen haben:

    Hauptform

    OptionsForm

    Wir gehen weiter davon aus, dass wir auf eine Art Schaltfläche geklickt haben, die OptionsForm mit einem Show () - Methodenaufruf öffnet. Schauen wir uns nun die Magie an:

    …. schnippen… .

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

    private void theform_Closing (Objektsender, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) -Sender;

    // Nimm die Variable aus dem Optionsformular. Das Optionsformular sollte diese Variable vor dem Schließen festlegen, und die Variable sollte als öffentlich gekennzeichnet werden.
    string localvar = theform.thestringvariable;

    Das ist alles dazu.