Controls mittels "Dock" positionieren, immer ein Panel nötig?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Controls mittels "Dock" positionieren, immer ein Panel nötig?

    Ich arbeite viel mit der "Dock"-Eigenschaft von Controls, um alle Steuerelemente automatisch in mein Fenster einzupassen.

    Meine Frage ist: Muss ich jedes Control zwingend auf ein Panel setzen, damit dieses nicht von anderen Controls mit Dock=Fill überdeckt wird bzw. diese anderen dann unter meinem Control mit z. B. Dock=Top sind?

    Beispiel: BindingNavigator oben mit Dock=Top, darunter ein DataGridView mit Dock=Fill. Die Header des DGVs sind nun unter dem BN.

    Ich könnte auch mit Anchor arbeiten, aber mittels Dock brauche ich zur Entwurfszeit nicht viel machen, sondern "klatsche" einfach alle Controls auf die Form und es sieht trotzdem gut aus.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hol Dir die Dokumentengliederung (Menü Ansicht -> weitere Fenster) her und nutze dort Drag&Drop, um das DGV vor den BindingNavigator (benutzt Du den wirklich?) zu schieben.
    Bilder
    • falsche Reihenfolge.png

      31,54 kB, 636×369, 121 mal angesehen
    • korrekte Reihenfolge.png

      34,96 kB, 648×408, 111 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Marcus Gräfe TableLayoutPanel, FlowLayoutPanel, SplitContainer geben der Form das "globale" Aussehen. In die kannst Du dann weitere solche Container reinpacken und so alles runterbrechen auf die Zellen für die einzelnen Controls.
    Bei mehr als ~10 Controls mach ich so n Layout.
    Wichtig ist dann auch, wie sich die Controls verhalten, wenn Du die Form vergrößerst oder verkleinerst.
    Default-Style-Label und einzeilige TextBoxen gehen da in der Höhe nicht mit.
    Wenn Du die Form dann noch als BaseClass einer weiteren Form nutzen wilst, kommt dann noch son Zeugs dazu, dass Du nur einen SplitContainer der BaseForm weiter befüllen kannst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VaporiZed Danke, klappt.

    VaporiZed schrieb:

    benutzt Du den wirklich?

    Öhm.. ja. ;) Warum, was wäre die Alternative? Alle Buttons zur Steuerung der Datenbanknavigation selber machen?

    @RodFromGermany Danke. Ich habe mich nun mal mit den einzelnen Containern auseinandergesetzt. Sehr praktische Dinge dabei.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Beim Docking ist die Reihenfolge mit-entscheidend, welches Control sich über welches legt.
    Experementiere also im Designer mit KontextMenu-SendToBack/BringToFront. (Die Wirkung davon spiegelt sich auch inne o.g. Dokumentengliederung wider.)
    Ansonsten zum Layouting habich Video-Tut gemacht:
    Layout in Windows.Forms

    Dieses als Ergänzung, weil den anneren Posts stimme ich auch zu.
    Der BN zeigt mir aber auch direkt die Anzahl der Datensätze und einen Hinzufügen- sowie Löschen-Button an. Klar kann man das auch alles selbst programmieren. Die Frage ist nur: warum? ;)
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Marcus Gräfe schrieb:

    Der BN zeigt mir aber auch direkt die Anzahl der Datensätze und einen Hinzufügen- sowie Löschen-Button an. Klar kann man das auch alles selbst programmieren. Die Frage ist nur: warum? ;)

    Löschen und Zufügen tuts das DGV doch auch selbst - ohne Button.
    Nur Anzeige der Anzahl tuts DGV nicht von selbst.
    Macht in meinen Augen also 4 nutzlose Buttons, und ein (manchmal) nützliches Label.
    Ich werde darüber nachdenken, ob ich den wegrationalisiere.

    Ich bin von Datenbankanwendungen so eine Navigation schlicht gewöhnt. Als ich vor Jahren beruflich Datenbankanwendungen entwickelt habe, hatte jede Dateneingabe so ein Ding (habe aber in Delphi entwickelt).

    Auch in heutiger Software, z. B. Warenwirtschaftssysteme, sehe ich sowas noch. Mir war nicht bewusst, dass das "out" zu sein scheint.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Mir war nicht bewusst, dass das "out" zu sein scheint.

    Technisch sicher praktisch, aber optisch sowas von out ;) .
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Ich habe übrigens nochmal über den BindingNavigator nachgedacht und sehe diesen für Anwendungen, die anfängergeeignet sein sollen, als zwingend erforderlich an (von der angestaubten Optik abgesehen).

    Meine aktuelle Software soll und wird auch von Leuten bedient werden, die von Computern fast keine Ahnung haben. Allein das Springen zum letzten Datensatz wäre bei vielen Datensätzen extrem langwierig, wenn jemand nicht weiß, dass er das "Ding" in der Scrollleiste anfassen und verschieben kann (ich kenne Leute, die zwar langjährige PC-Erfahrung haben, aber trotzdem nur den Pfeil-Hoch- und -Runter-Button bei Scrollleisten verwenden). Um nur ein Beispiel zu nennen...
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum