PDA

View Full Version : سوال: جابه جایی یک لیبل



Mohammad_dn
دوشنبه 27 مرداد 1393, 00:50 صبح
سلام من میخوام یک لیبلو با موس جا به جا کنم یعنی با موس بکشم و حرکتش بدم(مثل پنجره ی ویندوز)

وقتی ScaleMode من روی Twip هست از کد زیر استفاده میکنم:

Dim xx As Integer, yy As Integer
Private Sub Label_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
xx = X
yy = Y
End Sub

Private Sub Label_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Label.Left = Label.Left - (X - xx)
Label.Top = Label.Top - (Y - yy)
End If
End Sub

و به درستی کار میکنه اما وقتی ScaleMode رو یه Pixel تغییر میدم اصن کلا قاطی میکنه
لطفا راهنمایی کنید که باید چیکار کنم

vbhamed
دوشنبه 27 مرداد 1393, 09:28 صبح
سلام
چون وقتي روي ليبل كليك مي‌كنيد مختصات كرسر ماوس در هر صورت با واحد Twips برمي‌گرده بايد تقسيم بر 15 انجام بدين، البته به غير از اين يك اشتباه كوچيك هم در برنامه داشتيد
Dim xx As Integer, yy As Integer

Private Sub Label_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

xx = X / 15
yy = Y / 15

End Sub

Private Sub Label_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

With Label
.Move .Left + X / 15 - xx, .Top + Y / 15 - yy
End With

End If

End Sub