PDA

View Full Version : سوال: جابه جایی فرم با لیبل



ms-ninja
دوشنبه 08 مهر 1392, 11:03 صبح
با سلام

من میخوام یک لیبل در برنامه قرار بدم و مثل نوار وضعیت بتونم فرم رو حرکت بدم:لبخندساده:

111341

من با هرجور تلاش کردم نشد :لبخند:

با تشکر

amin32
دوشنبه 08 مهر 1392, 11:19 صبح
البته فکر کنم منظورتون نوار عنوان هست. به هر حال یک لیبل در فرم قرار بدید و کد زیر رو اضافه کنید:


Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
xx = X: yy = Y
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Me.Move Me.Left + X - xx, Me.Top + Y - yy
End If
End Sub

ms-ninja
چهارشنبه 10 مهر 1392, 09:40 صبح
ممنون

ولی این کد یک مشکلی داره

وقتی رو لیبل کليک رو نگه میداری فرم میپره میره یک سمت

amin32
چهارشنبه 10 مهر 1392, 10:20 صبح
ممنون

ولی این کد یک مشکلی داره

وقتی رو لیبل کليک رو نگه میداری فرم میپره میره یک سمت

در بالای برنامه و قبل از همه توابع, متغییرهای زیر رو تعریف کنید:

Dim yy, xx As Integer

vbhamed
چهارشنبه 10 مهر 1392, 15:47 عصر
سلام
اينطوري yy از نوع variant ميشه و xx از نوع integer
صحيحش اينه
Dim yy As Integer, xx As Integer
يا
Dim yy%, xx%

amin32
پنج شنبه 11 مهر 1392, 08:35 صبح
سلام
اينطوري yy از نوع variant ميشه و xx از نوع integer
صحيحش اينه
Dim yy As Integer, xx As Integer
يا
Dim yy%, xx%

بله حق با شماست . یک لحظه با تاپیکهای vb.net اشتباه شد! چون همونطور که میدونید در دات نت به این شکل عمل میشه!

as987498749874
پنج شنبه 11 مهر 1392, 13:03 عصر
راحترین....

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Public Declare Function ReleaseCapture Lib "user32.dll" () As Long


و بعد


Private Sub Label14_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim lngReturnValue As Long

If Button = 1 Then
Call ReleaseCapture
lngReturnValue = SendMessage(Me.hWnd, &HA1, 2, 0&)
End If
End Sub