Form automatisch verkleinern wenn Menu MenuStrip hinzugefügt wird?



  • Habe eine Form erstellt und oben ein Menü (MenuStrip) hinzugefügt. Von anderen Entwicklungsumgebungen (z. B. Java Swing) bin ich es gewohnt, das dieses Menü von der verfügbaren Fläche des Fensters automatisch abgezogen wird. D. h. ich kann z. B. einen Button an Position 0; 0 stellen. Bei C# verschwindet der Button dann aber unter dem Menü. Das Problem tritt auf, wenn man seine Form nicht mit dem Forms-Designer erstellt, sondern zu Fuß (Grund für mich, Ereignishandler in anderen Klassen, kann ich im Forms-Designer nicht auswählen).

    Kann man das irgendwie einstellen, das der Platz des Menüs abgezogen wird, oder welche anderen Lösungen gibt es (falls Verhalten bei einer Statusbar ähnlich ist, auch für diese).

    Habe auch schon gegoogelt, konnte aber nichts finden.



  • Wenn du den Form-Designer nicht verwenden willst, musst du das im Programm von Hand machen. Vielleicht hilft dieser Ansatz in der Methode Form_Load:

    //this.Height = 600;                    // Höhe der Form festlegen
    this.Height += 150;                     // Höhe der Form ändern
    //button1.Top = 100;                    // Position von button1 festlegen
    button1.Top += menuStrip1.Size.Height;  // Position von button1 ändern
    

    Das MenuStrip ist auch nur so etwas wie ein Control und beansprucht eben ein paar Pixel Höhe. Wieso hast du im Netz nichts gefunden?



  • Oder:

    this.Padding = new Padding(0, menustrip.Height, 0, 0);
    //..new Padding(left, top, right, bottom);
    

    ? 🙂


Anmelden zum Antworten