/ / Variablen zwischen Windows Forms Windows ohne ShowDialog () übergeben

Variablen zwischen Windows Forms Windows ohne ShowDialog () übergeben

Wenn Sie eine Windows Forms-Anwendung programmieren, müssen Sie ausnahmslos Variablen aus einem zweiten Formularfenster abrufen, z. B. einem Optionsformular oder einer Popup-Suchabfrage.

Die meisten Führer da draußen werden Ihnen das sagenSie müssen das zweite Formular mit ShowDialog () öffnen, was den Benutzer daran hindert, etwas anderes zu tun, bis er das zweite Formularfenster geschlossen hat. Dies funktioniert zum Beispiel bei einem Suchen / Ersetzen-Dialog nicht sehr gut. Es funktioniert auch nicht sehr gut für benutzerdefinierte Popup-Formulare.

Der schnelle Weg, Variablen zwischen den Formularen zu übergebenverwendet Delegaten. Sie können eine Ereignisbehandlungsroutine für das Closing-Ereignis des zweiten Formulars festlegen und das Ereignis im ersten Formular behandeln. Auf diese Weise können Sie Variablen erfassen, bevor das zweite Formularfenster geschlossen wird.

Für diese Übung nehmen wir an, dass wir zwei Formen haben:

Hauptform

OptionsForm

Wir gehen weiter davon aus, dass wir auf eine Art Schaltfläche geklickt haben, die das Optionsformular mit einem Methodenaufruf von Show () öffnet. Lassen Sie uns nun einen Blick auf die Magie werfen:

……. snip …….

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

}

private void theform_Closing (Objekt Absender, CancelEventArgs e)
{

OptionsForm theform = (OptionsForm) Absender;

// Nimm die Variable aus dem Optionsformular. Das Optionsformular sollte diese Variable festlegen, bevor sie geschlossen wird, und die Variable sollte als öffentlich markiert werden.
Zeichenfolge localvar = theform.thestringvariable;

}

Das ist alles dazu.