Objekte innerhalb eines Panels absolut positionieren

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Wesloth.

    Objekte innerhalb eines Panels absolut positionieren

    Ich will ein Objekt innerhalb eines Panels mit "objekt.left=newleft" positionieren nur ergibt sich leider ein Problem, wenn ein horizontaler Scrollbalken vorhanden und der ein wenig bewegt wurde, dann positioniert mir das .net3 das objekt leider relativ zum angezeigten panel-ausschnitt.
    Ich bräuchte aber für das 1. Objekte eine absolute Positionierung.
    Gibt es da eine Methode/Funktion für ?
    Die Position eines Steuerelements bezieht sich immer auf die Position innerhalb des Containers in dem das Steuerelement platziert wurde. Wenn sich die Position des Containers ändert, bleibt das Steuerelement relativ zum Container an der gleichen Stelle. Wenn du jetzt ein Panel (ist ein Container) in der Form hast und du darauf ein Objekt, dann hat dieses Objekt relativ zum Panel immer die gleiche Position aber relativ zur Form nicht unbedingt
    Du kannst jetzt entweder dein Objekt direkt auf der Form platzieren oder auf die entsprechenden Move- und Scroll-Events des Panels reagieren und das Objekt neu platzieren
    Hi
    das geht so:

    VB.NET-Quellcode

    1. Private ButtonDefaultLocation As Point
    2. Private Sub Panel1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles Panel1.Scroll
    3. Button1.Location = New Point(Panel1.HorizontalScroll.Value / Panel1.Width, Panel1.VerticalScroll.Value / Panel1.Height) + ButtonDefaultLocation
    4. End Sub
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. ButtonDefaultLocation = Button1.Location
    7. End Sub


    ButtonDefaultLocation ist die Position des Buttons, Panel1 der Container.

    Gruß
    ~blaze~