Hi,
ich möchte im Form2 (Form_Setup) den Nutzer die Einträge in ein Listenfeld vornehmen lassen, die im Form1 (Form_Main) angezeigt werden.
Speichern, Laden klappt alles - aber ich möchte, das Form beim Schließen von Form_Setup die Werte übernimmt - sprich Form_Main aktualisiert.
Dafür gibt es eine Anweisung die Form_Main aktualisiert -> public void LoadSettings()
Form_Setup schließe ich über Close().
Diese kann ich aber im Form_Setup nicht ansteuern bzw. laden - wie kann man diese Verbindung herstellen?
Kannst du über FormClosing umsetzen.
Dann musst du nur beim anlegen deines Form_Setup Objekts einfach den Handler, den du in Form_Main anlegen musst, übergeben.
Dann musst du nur, wenn das Event aufgerufen wird, darin die Daten laden und anzeigen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Form_Closing verstehe ich, aber
Dann musst du nur beim anlegen deines Form_Setup Objekts einfach den Handler, den du in Form_Main anlegen musst, übergeben.
Dann musst du nur, wenn das Event aufgerufen wird, darin die Daten laden und anzeigen.
Das krieg ich noch nicht hin ... bin gerade am Einarbeiten. Wie übergebe ich diesen?
Im einfachsten Fall sieht dass dann wie folgt aus.
// Form_Main.cs
private void Form_Setup_FormClosing(Object sender, FormClosingEventArgs e)
{
// Hier deinen Code einfügen um die Daten zu laden und anzuzeigen!
}
private void Show_Form_Setup()
{
Form_Setup setup = new Form_Setup();
setup.FormClosing = Form_Setup_FormClosing;
setup.ShowDialog();
}
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Nur bei einer nicht-modalen Form macht das FormClosing
-Ereignis Sinn:
private void Show_Form_Setup()
{
Form_Setup setup = new Form_Setup();
setup.FormClosing = Form_Setup_FormClosing;
setup.Show(); // <- nicht-modal
}
Bei einem modalen Dialog (mittels ShowDialog
) kann man den Code ja direkt dahinter setzen, da diese Methode solange wartet, bis der Dialog wieder geschlossen wurde (am besten dann auch den Rückgabewert vom Typ DialogResult
überprüfen).
Form_Setup
liest sich für mich eher als ein modaler-Dialog (oder soll es möglich sein, mehrere davon gleichzeitig öffnen zu können?).
Und dann einfach
Form_Setup setup = new Form_Setup();
if (setup.ShowDialog() == DialogResult.OK)
LoadSettings();
@Th69
Macht es natürlich noch einfacher 😉
Hab mal wieder etwas zu kompliziert gedacht.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.