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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 299122
Url: https://administrator.de/contentid/299122
Printed on: April 24, 2024 at 23:04 o'clock
1 Comment
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