myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Form-Objekte zur Laufzeit erstellen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Form-Objekte zur Laufzeit erstellen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Matthiaß Matthiaß ist männlich
myCSharp.de-Mitglied

Dabei seit: 14.06.2019
Beiträge: 1
Entwicklungsumgebung: visual studio 2019
Herkunft: Dresden


Matthiaß ist offline

Form-Objekte zur Laufzeit erstellen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
Ich habe hier folgenden Experimentalcod:

C#-Code:
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.
20.06.2019 15:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.269
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
20.06.2019 15:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.176
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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#?
20.06.2019 16:15 Beiträge des Benutzers | zu Buddylist hinzufügen
Stefan.Haegele Stefan.Haegele ist männlich
myCSharp.de-Mitglied

avatar-3068.jpg


Dabei seit: 13.03.2009
Beiträge: 352
Entwicklungsumgebung: Visual Studio 2010 Ultimat
Herkunft: Untermeitingen


Stefan.Haegele ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

[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?
01.07.2019 07:25 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.08.2019 22:25