2010-06-02 2 views
11

Ich verwende verschiedene Gruppen von Steuerelementen an derselben Stelle in einem Formular. Standardmäßig sind alle sichtbar = false und dann werden bestimmte Untergruppen der Steuerelemente auf "sichtbar" gesetzt, wenn der Benutzer bestimmte Werte in einer Combobox Dropdown-Steuerung auswählt.Verwalten von vielen überlappenden Steuerelementen in Visual Studio

Aus der Sicht des Benutzers funktioniert das gut, da sie nur die Steuerelemente sehen, die benötigt werden.

Da die Steuerelemente die gleiche Position auf dem Formular einnehmen, ist es jedoch schwierig, diese in Visual Studio-Entwurfsansicht zu verwalten.

Gibt es eine Möglichkeit, Gruppen dieser überlappenden Steuerelemente in Visual Studio zu gruppieren, sodass ich die gesamte Teilmenge der Steuerelemente schnell und einfach auswählen kann? Gibt es eine Möglichkeit, bestimmte Steuerelemente in der Entwurfsansicht zu verbergen? Gerade jetzt ist bei der Entwicklung alles übereinander gestapelt, so dass es schwierig wird, diese Steuerung zu steuern.

Antwort

9

Um ein solches Biest zum Arbeiten zu bringen, würde ich jede Gruppe in ihr eigenes UserControl setzen. Auf Ihrer MainForm stapeln Sie alle diese UserControls übereinander.

So können Sie bei der MainForm nicht wirklich einen guten Überblick bekommen, aber jetzt haben Sie für jede Gruppe Ihre individuelle Designeransicht und in Ihrer Hauptform können Sie die komplette Gruppe durch eine einzige Codezeile verbergen userControl.Visible = false.

+0

Nicht sicher, warum ich nicht daran gedacht habe, aber das funktioniert perfekt. Vielen Dank! – Dave

+0

Ich bin ziemlich neu in all dem. Wie gehe ich in die Designer-Ansicht für eine GroupBox? – Bernhard

+1

@Bernhard: Ganz einfach. Wenn Sie innerhalb des Lösungs-Explorers auf Ihrem Formular doppelklicken oder ein Benutzersteuerelement öffnet, wird standardmäßig die Designer-Ansicht geöffnet. Aber wenn Sie sich gerade den Code Ihres Formulars anschauen, können Sie auch einfach mit der rechten Maustaste irgendwo innerhalb des Codes klicken und aus dem Kontextmenü * Design-Ansicht * auswählen. – Oliver

0

Sie können sie nicht verstecken.

Sie können sie jedoch im Gruppenfeld gruppieren und mit "Bring to front" und "Send to back" -Eigenschaft handeln.

+0

das funktioniert nicht, sobald man das andere überlappt, wird es ein Teil davon. –

4

Ein TabControl kann dies, funktioniert gut im Design-Modus. Sie müssen nur die Registerkarten zur Laufzeit ausblenden. Überprüfen Sie meinen Code in this thread.

+0

Ah - das ist auch eine gute Idee! – Dave

+0

Ich denke, diese Idee ist Olivers Antwort für die meisten Fälle überlegen, weil es Ihnen erlaubt, Kontrollen nach Szenario zu gruppieren. In fast allen Fällen, in denen dies möglich ist, sind die Kontrollen szenario-/kontextspezifisch, so dass es mit dieser Methode einfacher ist, nicht nur einige Kontrollen gleichzeitig zu sehen, sondern nur die Kontrollen zusammen zu sehen, die der Benutzer zusammen sehen würde. –

-1

Zunächst einmal

Wenn Sie mit mehreren Komponenten in gleichem Ort arbeiten, können Sie Gruppenfelder in einem Formular verwenden. Um diese Gruppen zu überlagern, sollten Sie jede Ihrer Gruppenboxen an einer anderen Stelle in Ihrem Formularbildschirm bearbeiten. Nach der Bearbeitung sollten Sie die Größen- und Standortdaten manuell in Ihrem Gruppenbox-Eigenschaftenmenü eingeben.

Wenn Sie eines Ihrer Groupbox nach dem festgelegten Ort bearbeiten möchten, können Sie einfach mit der rechten Maustaste auf eine Ihrer Gruppenboxen klicken und dann auf "Nach hinten" und "Vorne holen" klicken. Ich hoffe, es hilft.