Hallo Pascal,
pascalsv hat folgendes geschrieben: |
Gibt es einen eleganteren Weg als diesen: |
Ja. Du musst im rufenden Formular einen
EventHandler/Delegate schreiben, der durch das Button.Click ausgelöst wird und die gewünschten Änderungen übernimmt:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void GetInformation(object sender, EventArgs e) { }
fQueries queriesForm = new fQueries(queryListResponse); queriesForm.MyButtonClick += GetInformation; |
Das Problem bei dieser Lösung bleibt, dass in der GetInformation-Methode die Elemente von queriesForm nicht bekannt sind und Du keinen Zugriff auf die Controls hast. Eine bessere Lösung ist deshalb, eine eigene
EventArgs-Klasse und einen passenden
Delegate zu definieren, indem bestimmte Informationen - wie in Deinem String-Array - übergeben werden.
Eine Einführung über Delegates findest Du z.B. in
OpenBook Visual C# Kap.4.4.
Übrigens solltest Du auf String-Arrays möglichst verzichten; besser ist fast immer
List<string>.
Gruß Jürgen
/Edit
Wenn Dich das Ergebnis erst nach dem Schließen des Unterformulars interessiert, geht es auch so, wie Du es gemacht hast. Du solltest aber nicht ListBox.Items abfragen, sondern (weil Dich eine String-Liste interessiert) eine solche als Eigenschaft zur Verfügung stellen und diese innerhalb des Unterformulars erstellen. Dazu ist auch Kha's Hinweis sehr hilfreich.