Tag, So, zweiter Versuch, nach dem ich das falsche Forum erwischt habe: http://www.mikrocontroller.net/topic/109818 Ich habe in Visual 2008 Express mit dem grafischen Editor eine Form erzeugt, in der ein TabControl angezeigt wird. Innerhalb dieses TabControlls sollen nun durch Code weitere Steuerelemente (Textboxen, Buttons,..) angezeigt werden. Meine Probleme nun: - Wie erzeuge ich innerhalb der entsprechenden TabControl Registerkarte ein neues Steuerelement? - Je nach Ereignis (z.B. Benutzereingabe,...) sollen neue Steuerelemente hinzugefügt oder andere gelöscht werden. Wie zeichne ich die dann neu? MfG Matthias
Genauso wie das der Forms-Designer macht... [c] void ButtonAddClick(object sender, EventArgs e) { Button newButton = new Button(); newButton.Left = newX; newButton.Top = newY; SuspendLayout(); aTabPage.Controls.Add(newButton); ResumeLayout(false); PerformLayout(); }
Ähm, ja... und wie bringe ich den Button dazu dass er angezeigt wird? o.O
Ja ne, ist klar.. bin auf'm Schlauch gestanden.. indem ich die Methode ButtonAddClick einfach aufrufe. Nun stehe ich aber vor einem weiteren Problem. Ich möchte die Buttons jetzt innerhalb mehreren GroupBoxen anordnen. Also so in die Richtung Button und GroupBox Array. Wie bekomme ich aber jetzt raus, innerhalb welcher GroupBox welcher Button gedrückt wurde?
Ach mist, während dem Bearbeiten ist die Bearbeitungs-Zeit abgelaufen... alles nochmal neu grml Also, ich hätte noch zwei Fragen: Kann ich bei GroupBox.AutoSize = True die Größe, bzw anderen Positionen auslesen, um weitere GroupBoxen passend zu Positionieren? z.B.
1 | newGroupBox.top = oldGroupBox.top + oldGroupBox.Height + 10 |
Dann: Müsste SuspendLayout nicht auch das setzen der Positionen mit umfassen? Was bewirkt den PerformLayout() genau? Da ist die Hilfe irgendwie nicht sehr aufschlussreich.
Matthias S. wrote: > Ach mist, während dem Bearbeiten ist die Bearbeitungs-Zeit abgelaufen... > alles nochmal neu *grml* > > Also, ich hätte noch zwei Fragen: > > Kann ich bei GroupBox.AutoSize = True die Größe, bzw anderen Positionen > auslesen, um weitere GroupBoxen passend zu Positionieren? Sollte gehen, bei komplizierteren Sachen geht's mit einem TableLayoutPanel einfacher, wenn man die Zeilen und Spalten passend einstellt/hinzufügt
1 | aTableLayoutPanel.Controls.Add(newGroupBox, col, row); |
> z.B. >
1 | > newGroupBox.top = oldGroupBox.top + oldGroupBox.Height + 10 |
2 | > |
> > Dann: > Müsste SuspendLayout nicht auch das setzen der Positionen mit umfassen? In dem Beispiel von oben nicht, da das Control noch nicht dargestellt wird bzw. irgendwo hinzugefügt wurde. Wenn das Control allerdings schon irgendwo dargestellt wird, sollte man SuspendLayout vor umfangreichen Änderungen aufrufen, ansonsten wird für jede Änderung von Location, Size, Dock etc. das Layout erneut berechnet. > Was bewirkt den PerformLayout() genau? Da ist die Hilfe irgendwie nicht > sehr aufschlussreich. Letztlich führt das ganze für das angegebene Control und alle untergeordneten Controls das Layout durch bzw. ruft die Layout-Handler der Controls auf. Die Reihenfolge der Suspend/Resume/PerformLayouts hat u.U. auch Einfluss auf die Performanz des ganzen...
Na, da hab ich ja jetzt schon ne ne Menge zum spielen! Dankeschön! Stellt sich nur noch die Frage mit den Zugrifff, bevor das Edit untergegangen ist: Beitrag "Re: c# - Steuerelemente durch Code erzeugen/zeichnen"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.