Panel anordnen?
-
Hallo, ich habe ein Problem beim Hinzufügen von Panels zu einem Form. Das erste Panel (soll links angedockt sein) habe ich mit dem Designer eingebaut. Jetzt möchte ich ein zweites Panel einbauen, dass über die restliche Client-Fläche angedockt ist. Der Quelltext sieht folgendermaßen aus :
this->SuspendLayout(); this->panelMath = gcnew Panel; this->panelMath->Dock = System::Windows::Forms::DockStyle::Fill; this->panelMath->Location = System::Drawing::Point(258, 5); this->panelMath->Size = System::Drawing::Size(521, 334); this->panelMath->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; this->Controls->Add(panelMath); this->ResumeLayout();
Das funktioniert auch alles soweit, nur dass das Panel über das komplette Form angedockt ist. Das erste liegt also über dem zweiten, aber sie sollen nebeneinander liegen. Kann mir da jemand einen Tipp geben?
Vielen Dank im voraus
lg Baseball
-
Ändere die Reihenfolge!
- Im Designer:
Menuleiste → Ansicht → Weitere Fenster → Dokumentenansicht aufrufen und dann über die Pfeiltasten in der Toolbox auswählen - Im Quellcode (wenn die Befehle in der selben Methode sind):
Die Abschnitte verschieben (austauschen) - sonst:
TabIndex überarbeiten. (ungeprüft)
- Im Designer:
-
Hallo, danke für die schnelle Antwort. Allerdings habe ich das Problem noch nicht gelöst. Der Versuch mit der Dokumentenansicht scheitert daran, dass dieses Panel im Designer noch gar nicht existiert. Und das mit dem Vertauschen im Quellcode bringt auch nichts, da dieses entsprechende Panel erst bei einem Click auf einen Button eingebaut werden soll.
lg Baseball
-
Hallo
und wenn du das mit rein nimmst ??
this->panel1->Padding = System::Windows::Forms::Padding(31, 0, 0, 0);
Damit der Panel weiß wo er anfangen soll !!
So rückt er 31 Pi von links ein und fängt dann an !Gruß
-
Nochmal ich
Und wenn du das Panel schon im Designer erstellst und im Load Form
this->panel2->Visible = false;
setzt damit mann es nicht sieht
und beim Button klick wieder sichtbar machstthis->panel2->Visible = true;
?????
Denn ich glaub ich war vorher zu schnell mit meiner Aussage :-((
-
Auf welches Objekt soll ich das Padding denn anwenden? Wenn ich die Eigenschaft Padding vom Form nehme, ist das andere Panel ja auch damit "belastet", oder?
Ich will dieses Panel innerhalb des Programmablaufes mehrmals erstellen und zerstören. Es muss doch da eine Möglichkeit geben, dem Panel zu sagen, dass es als "Client abzüglich des ersten Panels" erscheinen soll.lg Baseball
-
Also entweder wie ich als dritte Alternative gesagt habe, es mit TabIndex probieren, oder ein (anderes) Panel schon beim Designen zu erstellen, worin du zwischendurch dein eigenes Panel "erstellst", welches dann (unverändert)DockStyle.Fill hat.
Außerdem würde ich von Margin bzw. Padding abraten.
Baseball schrieb:
Wenn ich die Eigenschaft Padding vom Form nehme, ist das andere Panel ja auch damit "belastet", oder?
Ja
Mit freundlichen Grüßen
Rhombicoisodidodecahedron