Bewegtes Label Visual Basic
Guten Abend,
ich versuche mich grade ein bisschen an VB.
An sich würde ich gerne ein beliebiges Element (Label, Button) bewegen, pixelweise.
intPosX = Me.Label1.Right + 1
If (intPosX < 400) Then
Me.Label1.Location = New Point(intPosX, Me.Label1.Top)
Me.Refresh()
Else
intPosX = 0
Me.Label1.Location = New Point(intPosX, Me.Label1.Top)
Me.Refresh()
tut das schon mal ganz gut.
Nur verschiebt mir das Ganze (Timergesteuert) das Element nicht, wie ich erwarten würde um 1 Pixel, sondern um die Breite des Elements.. Wo ist mein Fehler?
ich versuche mich grade ein bisschen an VB.
An sich würde ich gerne ein beliebiges Element (Label, Button) bewegen, pixelweise.
intPosX = Me.Label1.Right + 1
If (intPosX < 400) Then
Me.Label1.Location = New Point(intPosX, Me.Label1.Top)
Me.Refresh()
Else
intPosX = 0
Me.Label1.Location = New Point(intPosX, Me.Label1.Top)
Me.Refresh()
tut das schon mal ganz gut.
Nur verschiebt mir das Ganze (Timergesteuert) das Element nicht, wie ich erwarten würde um 1 Pixel, sondern um die Breite des Elements.. Wo ist mein Fehler?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 299122
Url: https://administrator.de/contentid/299122
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
1 Kommentar
Hi.
Weil die Referenz eines Controls die linke obere Ecke ist und du gibst immer den rechten Rand des Elements als X Wert an,
fk
Weil die Referenz eines Controls die linke obere Ecke ist und du gibst immer den rechten Rand des Elements als X Wert an,
intPosX = Me.Label1.Right + 1
da ist es klar das dein Control immer um die Breite dieses springt . Nimm stattdessen die Eigenschaft Left des Controls.fk