Entwickler-Ecke
WinForms - Bei Laufzeit dynamisch Steuerelemente hinzufügen
Csharp-programmierer - Mi 02.09.15 16:14
Titel: Bei Laufzeit dynamisch Steuerelemente hinzufügen
Hallo ihr Experten. Ich möchte ein neues Projekt starten.
Auf der Form1 existiert eine TabControl mit einer TabPage, welche über eine RichTextBox verfügt. Per Click auf ein Button soll eine neue TabPage mit entsprechendem Text hinzugefügt werden. Die kann ich:
C#-Quelltext
1:
| this.tabControl1.TabPages.Add("Dies ist eine TabPage"); |
Doch diese neuen TabPages verfügen über keine RichTextBox. Da ein Projekt (das Programm erstellt einen neuen Ordner) aber mehrere Files (in diesem erstelltem Ordner) beinhaltet und diese Text- Datein in die jeweilige RichTextBox in der TabControl schreibt, muss ich den RichTextBoxen aber zur Laufzeit noch einen anderen Namen geben.
Zweck des Programms:
Es handelt sich um ein Web Developing- Projekt. Der Benutzer kann ein neues Projekt (im Programm) starten. Nun erscheint eine TabPage mit dem jeweiligen Namen des Projekts und einer RichTextBox, wo er dann den HTML Quellcode schreiben kann. Nun möchte der Benutzer aber noch eine CSS- Datei speichert. Hierzu betätigt er einen Button, ein Fenster geht auf wo der Benutzer dan Typ (CSS oder HTML) eingibt und den Namen der Datei. Es wird eine neue TabPage mit einer RichTextBox erstellt, in die er dann den CSS- Quellcode eingeben kann. Er möchte dann z.B. noch eine HTML- Datei einfügen und das selbe Spiel geht von vorne das Projekt speichert er dann. Beim öffnen muss das Programm nun alle TabPages wieder herstellen und die RichTextBoxen adden. Den Namen dieser RichTextBoxen brauche ich dann nun um die Daten in die richtige TabPage und der dazugehörigen RichTextBox einlesen zu können.
Da jedes Projekt unterschiedlich viele TabPages hat, ist es Käse eine vorprogrammierte TabControl zu erstellen.
Meine Frage: Wie kann ich zur Laufzeit des Programms unterschiedliche RichTextBoxen adden (zu der dazugehörigen TabPage (die auch erstellt werden muss)) und diesen einen gezielten Namen geben?
Ich hoffe ihr versteht mich.
MFG :)
Ralf Jansen - Mi 02.09.15 16:23
TabPages.Add liefert dir das erstellte TabPage zurück (im Moment scheinst du das einfach zu ignorieren). Da du das TabPage nach dem Add an der Hand hast kannst du dem dort auch einfach dann einen Namen gebn Controls drauf erzeugen oder was auch immer mit dem TabPage tun.
Csharp-programmierer - Mi 02.09.15 17:21
Das wusste ich nicht. Könnten Sie mir vielleicht ein Code senden, was eine TabPage mit einer RichTextBox hinzufügt und der RichTextBox einen Namen gibt?
Für neue Ideen bin ich offen. :)
Ralf Jansen - Mi 02.09.15 17:42
| Zitat: |
| Das wusste ich nicht. |
Weil es auch einfach gelogen war. Ich hätte schwören können das die Add Methode die erzeugte Page zurückgibt.
Egal, erzeugt man die Page einfach so und fügt dann die Page per TabPages.Add Methode hinzu.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| TabPage page = new TabPage("Dies ist eine TabPage"); page.Name = "MeineLiebeTabPage1"; tabControl1.TabPages.Add(page);
RichTextBox box = new RichTextBox(); box.Name = "MeineLiebeRichTextBox1"; box.Dock = DockStyle.Fill; page.Controls.Add(box); |
Th69 - Mi 02.09.15 18:49
Solltest du mehr als nur ein Steuerelement je TabPage haben, so wäre es besser, du erstellst ein Benutzersteuerelement (User Control) - dieses kannst du über den Designer erstellen - und fügst dann dieses einfach der TabPage hinzu. So ersparst du dir das manuelle Erzeugen der Controls und Setzen deren Standardeigenschaften.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!