Hallo,
Ich habe hier folgenden Experimentalcod:
private void Button1_Click(object sender, EventArgs e)
{
Form Arbeitsblatt1 = new Form();
Arbeitsblatt1.Show(this);
Form Arbeitsblatt2 = new Form();
Arbeitsblatt2.Show(this);
// usw.
}
Dieser Cod ist für meien Zweck zu starr.
Ziel ist es einen Cod zu schreiben in dem die Namen der Formulare erst während der Laufzeit
generiert werden d.h., : Sie sollten selbst Variablen sein und wärend der Laufzeit je nach Erfordernis
erzeugt oder gecancelt werden. Ich habe versucht diese Objekte in einen Array zu packen, aber das
quittiert der Compiler mit " Indizierung kann mit [] nicht auf den Typ Form angewendet werden."
Kurz, das Ganze soll ungefähr so funktionieren wie Worksheets unter VBA-Excel.
Gruß Ma.
Ma.
Klingt auch eher nach einem Ansatz über Dictionary<string, Form> o.ä.
Dann kannst du das Dictionary als Lookup Table verwenden um zu schauen ob ein Form mit dem Namen bereits vorhanden ist.
Das ganze solltest du dann aber sauber in einer Klasse Wrappen, dass sich dann um das handling der Forms über ihren Namen kümmert.
Sonst verwurstest du dir deinen Code.
Keine Ahnung wie dein Array Ansatz aussah, vermutlich wolltest du anstelle des Index einfach das Form übergeben.
Macht bei Arrays in C# und vielen Sprachen keinen Sinn.
In JS wäre dies dann eine HashMap, die C# dir über Dictionary anbietet.
Alternativ kannst du auch direkt ein HashSet verwenden und prüfen ob deine Form Instanz vorhanden ist.
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.
C# ist nicht VBA. Siehe dazu:
[FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls
[FAQ] Kommunikation von 2 Forms
PS: Wenn man eine andere Sprache lernen will, ist es sinnvoll, sich erstmal mit den Grundlagen zu beschäftigen, sonst ist Frustration vorprogrammiert (no pun intended): [FAQ] Wie finde ich den Einstieg in C#?
Weeks of programming can save you hours of planning
[110% OffTopic]
Da du ja öfters das Wort Cod benutzt - es heißt Code... Für viele eine Kleinigkeit - für mich gehört es jedoch zum Gesamtbild dazu - und ich nehme nicht an, dass du Call of Duty meintest, oder?