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

Übergeben von Variablen zwischen Windows Forms Windows ohne ShowDialog () - Wie Man 2023
Übergeben von Variablen zwischen Windows Forms Windows ohne ShowDialog () - Wie Man 2023
Anonim

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 beispielsweise für einen Dialog zum Suchen / Ersetzen 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 weiterhin davon aus, dass wir auf eine Art Schaltfläche geklickt haben, mit der OptionsForm mit einem Show () - Methodenaufruf geöffnet wird. Lassen Sie uns nun die Magie betrachten:

……. 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;

}

Das ist alles dazu.

Beliebtes Thema

Fachberatung