Announcement

Collapse
No announcement yet.

Automatische Verschiebung von Steuerelementen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Automatische Verschiebung von Steuerelementen

    Hi Zusammen!

    Bin absoluter C# und Entwicklungs-Neuling und schäme mich ein bisschen eine solche Frage zustellen. Habe sicher fast 1 Stunde im Netz nach einer Antwort gesucht aber nichts gefunden.

    Folgendes Problem:

    Ich habe eine Windows-Form. Im linken Bereich der Maske habe ich über ein Panel diverse Buttons platziert die mir als Menu dienen sollen. Die Form soll "Sizeable" sein.

    Wenn nun die Form vergrössert wird, bleiben die Buttons stehen und unten beim Panel wird nur die Form vergrössert.

    Wie kann sichergestellt werden, dass, auch bei Vergrösserung der Form das Panel gänzlich auf der linken Seite angedockt ist?

    Vielen Dank für eine Antwort

    Freundliche Grüsse
    rewisch

  • #2
    Hallo,

    keine Angst: dumme Fragen gibt es nicht (zumindest nicht wenn man schon vorher gesucht hat )

    Positioniere die Steuerelemente nicht absolut auf der Form wie dies geschieht wenn sich einfach mit dem Designer reingezogen werden.
    Verwende besser Layout-Container wie das TableLayoutPanel, DockPanel*, Wrappanel, etc. Mit diesen kannst du die Oberfläche in "logische Bereiche" teilen und bei Größenänderungen bleibt diese Aufteilung erhalten.
    Weiters gibt es auch dei Anchor-Eigenschaft mit der ein realtiver Bezug erstellt werden kann.

    Suche mal nach den genannte Stichworten und schau dir die Beispiel in der MSDN an.

    * angedockt hast du ja selbst erwähnt


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Form das Panel gänzlich auf der linken Seite angedockt ist?
      'angedockt' ist schon die richtige Begrifflichkeit. Da hätte sich eigentlich was beim googeln finden lassen. Wie auch immer was du suchst ist die Dock Property des Panels. Setze die auf Left. Die andere entscheidende Property eines jeden Controls um Position und Größe relativ zur Form (bzw. zum Container in dem sich dieses Control befindet) zu regeln ist Anchor. Mit Dock und Anchor solltest du schon etwa 95% aller Layoutproblem lösen können.

      Comment


      • #4
        Hallo,

        Vielen Dank für eure Antworten.
        Ein Panel habe ich verwendet ... Werde das heute Abend nochmals wie von euch beschrieben versuchen und mich anschliessend mit dem Ergebnis melden.

        Vielen Dank nochmals!

        Einen guten Start in die Woche!

        Gruss, rewisch

        Comment


        • #5
          Ich denke die Controls von Gfoidl sind aus dem WPF Framework. In Windows Forms verwendet man am ehesten Panels und Splitters (dann kannst Du das Panel resizen - flowlayoutpanel für einfache szenarien). Wenn die mal irgendwie seltsam hintereinander sind, dann musst Du die Reihenfolge im Dokumentengliederung (document outline dialog) anpassen.

          Comment


          • #6
            Hallo Florian,

            bis auf das DockPanel gibts die anderen in WinForms


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Aber ist das ganze in WPF nicht etwas anders zu organisieren? Gefühlt war das was ich in dem Buch gelesen habe schon irgendwie anders. Auch mit den Tabellenlayouts usw.

              Bin bis jetzt leider in der WPF Ecke noch nicht wirklich unterwegs gewesen Ich entschuldige mich für mein Unwissen...

              Comment


              • #8
                Hallo Florian,

                in WPF ist es mit den "Strukturpanels" schon ziemlich ähnlich wie in WinForms. TableLayoutPanel = Grid, WrapPanel = StackPanel, ... Aber von der Anordnung der Steuerlemente in den Panels sind sie ident.

                Was genau meinst du mit "anders organisieren"?


                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  Ich dachte da gäbe es an der Basis schon irgendwelche Unterschiede. Also das Kapitel über Panels in WPF in meinem Buch war schon recht ausführlich und da gabs imho auch viele Möglichkeiten die man in Windows Forms nicht hat. Deswegen würde ich da UIs wahrscheinlich anders auf bauen. In Windows Forms gibs glaub ich kein Grid Layout Control. Es gibt nur ein DataGridView, aber das hat eine andere Funktion. Ich hab eigentlich immer nur Panels und Splitter benutzt. Für einfache dynamische Sachen manchmal noch ein FlowLayoutPanel.

                  Comment


                  • #10
                    Hallo Florian,

                    da gabs imho auch viele Möglichkeiten die man in Windows Forms nicht hat
                    Das stimmt. WPF bietet viel mehr Möglichkeiten.

                    In WPF baue ich die UIs meist beginnend mit einem Grid auf. Das am besten entsprechende Control in WinForms ist das TableLayoutPanel. In diese Richtung ist meine Antwort zu deuten

                    Edit: gerade zufällig drübergestolpert: Windows Forms Controls and Equivalent WPF Controls


                    mfG Gü
                    Zuletzt editiert von gfoidl; 06.06.2011, 21:30.
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #11
                      Ich wusste gar nicht dass Windows Forms auch ein TableLayoutPanel hat das ist mir neu. Aber ich hab auch immer nur die Teile in der ToolBox verwendet. Mag sein dass es da net drinne war

                      Asche über mein Haupt

                      Comment


                      • #12
                        HI Leutz

                        Habe die Sache nun noch getestet. Habe einen Denkfehler gemacht ... Habe das Prinzip nun begriffen und angewandt!

                        Herzlichen Dank!

                        Freundliche Grüsse,
                        Rewisch

                        Comment


                        • #13
                          Hallo rewisch,

                          darf ich dich bitten den Denkfehler kurz hizuschreiben - so haben andere die ein ähnliches Problem haben mehr Hinweise diesen Fehler gleich zu vermeiden. Vielen Dank im Voraus.


                          mfG Gü
                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                          Comment


                          • #14
                            Hallo gfoidl

                            Sry, habe vergessen meinen Überlegungsfehler noch im Forum zu posen. Ich habe folgendes gemacht:

                            Ich wollte links unten in der Windows-Form einige Buttons platzieren. Wenn ich das Fenster vergrösserte sind die Buttons nicht nach unten mitverschoben worden. Das Problem war das ich Dock nicht "Down" sondern "Left" angegeben hatte.

                            Eigentlich ein blöder fehler ...

                            P.S.: Bin gerade dabei das Buch "Visual C# 2010" von Andreas Kühner zu lesen. C# und das .net Framework sind, man kann es nicht anders sagen, einfach nur Geil

                            Hoffe mir dadurch einige Fragen im Forum zu sparen ...

                            Gruss, rewisch

                            Comment

                            Working...
                            X