Dialoggrösse anpassen



  • Hallo Community,

    ich habe wahrscheinlinch ein einfaches Problem.
    Dazu habe ich mein Code soweit reduziert dass ich es zwar "hoffentlich" weiss woran es liegt jedoch ich finde die richtige Lösung nicht.

    Problem.
    Ein Form als DialogBox mit einem Label von 200 Pixel. Die Y- Position des Labels liegt bei 0.
    Wenn ich jetzt im Dialog sage:

    Width = label1.Width

    dann ist das Dialog zu klein.
    Wahscheinlich ligt es an dem Rahmen vom Dialog.

    Frage:
    Wie passe ich zur Laufzeit ein Dialog ein dass mein Label passt?



  • Es ist im allgemeinen keine gute Idee, die Größe von Dialogboxen an den Inhalt anzupassen. Das kann übel enden, wenn der Inhalt mal unerwartet riesig oder winzig ausfällt. Dadurch kann eine ganze Applikation so unbedienbar werden, dass man sie nur noch abschießen kann.

    Besser ist, die Größe des Fensters als fest anzunehmen und den Inhalt so zu gestalten, dass er sich anpassen kann, z.B. durch mehrzeiligen Text oder Scrollbalken.

    Windows-Forms ist nicht so meine Heimat, daher weiß ich nicht, wie es da konkret geht, aber ich glaube, das Label ist ein relativ primitives Control. Da gibts inzwischen Besseres.



  • Ja du hast recht.
    Mein Problem liegt jedoch bei VB.net.
    Ich habe den Code von VB6 von jemanden übernommen und auf VB.net convertiert und stossse auf dieses Problem.
    Natürlich könnte ich es etwas abändern aber ehrlich gesagt ersmal versuche ich es beizubehalten und entsprechend an der Stelle anzupassen.
    Das ganze probiere ich unter c# aus und sehe dass dieser Effekt der gleicher ist (was ich erwrtet habe).



  • Verwende ClientSize:

    ClientSize.Width = label1.Width;
    

    Noch besser ist es aber für den Dialog und dessen Unterelemente Anchor und Dock zu verwenden (und evtl. noch AutoSize), s. z.B. Working with Anchoring and Docking Properties.


Anmelden zum Antworten