PictureBox2 an PictureBox1 andocken / AutoSize

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Morrison.

    PictureBox2 an PictureBox1 andocken / AutoSize

    Hallo,

    ich habe eine Form in der ich zwei PictureBoxes habe.

    Ich habe beide auf AutoSize gestellt. Wenn ich nun in die eine PictureBox ein Image lade wird die zweite PictureBox überlagert!

    Wie bewerkstellige ich das ich die PictureBoxes aneinander andocken kann ohne das das eine das andere überlagert und ohne das das andere aus der "Form" geschoben wird?
    @Morrison:: Pack auf Deine Form einen SplitContainer, die PictureBoxen in je ein Panel davon.
    Feddich. :D
    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!
    Hmm, jetzt funzt die AutoSize Funktion von den PictureBoxen nicht mehr!

    Ich hab vorher eine kleine "Form" und wenn ich des Bild lade vergrössert sich per AutoSize die PictureBox und somit auch die Form.

    Das passiert jetzt nicht mehr. Ich sehe nur die vorgegebene Grösse der PictureBox auf der Form.

    Muss ich das vorher auf die Größe bringen bzw. mit Enabled=False arbeiten?

    Bin insg. leider nen Laie und kenne "SplitContainer" leider nicht.

    Morrison schrieb:

    AutoSize Funktion von den PictureBoxen nicht mehr!
    Stell mal beide PictureBoxen auf SizeMode = Zoom.
    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!
    Das ist es auch nicht! Jetzt sehe ich zwar das gesamte Bild in der PictureBox, aber nicht in Originalgröße! Nur in der Größe in der ich die PictureBox vorgebe. Und die Form ist vor dem laden des Bildes auch unansehnlich groß und unausgefüllt!

    :S

    Wie kann ich denn nach dem laden eines Bildes in eine PictureBox die andere PictureBox daneben bzw. dahinter anordnen und die Form-Größe anpassen?

    Kann man nicht iwie die PictureBoxen anstatt Dock = Top, Dock = Left usw. nicht Dock = PictureBox zuweisen?

    Ich muss wohl eine Art "vorher/nachher" Vergleich anstellen. Und somit die Controls neu positionieren. Also gucken um wieviel sich die Form vergrössert hat und dementsprechend die Controls neu verteilen, oder?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Morrison“ ()

    Naja, also das ich z.B. festlegen kann das eine TextBox immer 5px Abstand von einer PictureBox hat.

    Ich hab jetzt auf meiner Form drei Buttons, zwei PictureBoxes und eine Listbox.

    Die Buttons sind ganz oben. Da hab ich Anchor auf "Left" und "Top" gesetzt.

    Die beiden PictureBoxes sind untereinander und sollen zueinander immer den gleichen Abstand haben. Anchor "Left" und AutoSize gesetzt.

    Die ListBox ist rechts von den PictureBoxes und soll vom rechten Form-Rand 5px und von den PicBoxen 5pix Abstand haben.

    Wenn ich jetzt mit dem "Bild laden"-Button ein Bild in die PB1 lade vergrössert sich die Form aufgrund des Bildes (gewollt), jedoch wird die ListBox vom Bild verdeckt..und auch die zweite PicBox(nicht gewollt)!

    Dachte ich könnte das mit

    ListBox2.Top = PictureBox1.Bottom + 5

    lösen, aber iwie seh ich dann nurn halbes Bild.

    Wie kann ich denn so ein Layout erstellen, wo keine Controls überlagert werden?
    offensichtlich hast du genaue Vorstellungen :thumbsup:
    Nur kann ich dem nicht folgen, aber ist vlt auch nicht so wichtig.
    wie gesagt: Mit AutoSize habich garkeine Erfahrungen - es scheint mir annähernd zwangsläufig jedes Layout zu versauen. Oder zumindest sehr schwierig zu machen, wenn die Controls ihre Größen selbst bestimmen.
    Aber probier mal mit TableLayoutPanel rum - da kann man Columns auch auf AutoSize stellen.
    Übungen mit derlei Sachen kannste gugge auf Layout in WinForms - vlt. ist ja was für dich brauchbares dabei.

    ErfinderDesRades schrieb:

    Imo muss sich ein Bild dem verfügbaren Platz anpassen, nicht umgekehrt.
    Jap.

    Sonst im SizeChanged-Event der PicBox1 die Location der PicBox2 anpassen.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    ThePlexian schrieb:

    Sonst im SizeChanged-Event der PicBox1 die Location der PicBox2 anpassen.
    Und im im SizeChanged-Event der PicBox2 die Location der PicBox1 anpassen?
    Oder hab ich das falsch verstanden?
    @Morrison:: Male mal 2 Bilder, wie sich Deine GUI verhalten soll.
    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!
    Hab auch das mit den SplitContainern ausprobiert..ist generell wohl für eine gute und klare Übersicht und Anordnung zu empfehlen, aber für mich zu kompliziert zumal sich die Container nicht selbstständig an die Bildgröße anpassen!

    Habs jetzt mit dem SizeChanged-Event gelöst..ist wohl für mich das einfachste! :thumbup:

    Hab mit bissl fummeln und rechnen die richtigen Größen rausgefunden mit denen ich das Fenster verbreitern muss damit alles auf der Form bleibt! Also alles OK und Thema erledigt!

    Vielen Dank für Eure Hilfe! ;)