PDA

View Full Version : سوال: حرکت فرم با کلیک بر هر جای صفحه



rezapassword
چهارشنبه 01 آبان 1387, 10:27 صبح
دوستان میخوام هر جای فرم که کلیک شد و حرکتش دادن فرم هم حرکت کنه:قلب:
یعنی کلیک کنن و ایین نگه داشتن فرم رو حرکت دادن فرم حرکت کنه
ممنون:متفکر:

morteza_261
چهارشنبه 01 آبان 1387, 11:14 صبح
سلام
این هم یه نمونه کد:

یه متغیر تعریف میکنیم به این صورت»


Dim p1 As Point

بعد توی رویداد MouseDown فرم این کد رو مینویسیم»


If (e.Button = Windows.Forms.MouseButtons.Left) Then
p1 = New Point(e.X, e.Y)
EndIf

توی رویداد MouseMove فرم هم این کد رو مینویسی»


If (e.Button = Windows.Forms.MouseButtons.Left) Then
Dim MousePos As Point = Control.MousePosition
MousePos.X = MousePos.X - p1.X
MousePos.Y = MousePos.Y - p1.Y
Me.Location = MousePos
EndIf

rezapassword
چهارشنبه 01 آبان 1387, 18:31 عصر
عزیز این کار نمیکنه
ممنون

morteza_261
چهارشنبه 01 آبان 1387, 20:37 عصر
سلام
مگه میشه من تو فرمام اینو نوشتم کار میکنه
شما اگه روی خود فرم کلیلک کنی و موس رو تکون بدی فرم حرکت میکنه،مگر اینکه پنل یا چیز دیگه ای باشه و روی اون کلیک کنید

حالا باز کد بالا رو جدا میکنم تا راحت تر خونده شه و دچار مشکل نشید...

mostafaaa
چهارشنبه 01 آبان 1387, 21:41 عصر
داداش من این همه دردسر نداره که .

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WmNcHitTest As Integer = &H84
Const HtCaption As Integer = 2
If m.Msg = WmNcHitTest Then
m.Result = New IntPtr(HtCaption)
Else
MyBase.WndProc(m) 'THIS IS IMPORTANT!
End If
End Sub

rezapassword
پنج شنبه 02 آبان 1387, 16:14 عصر
مصتفا جان کد شما هم کار نمیکنه
نکنه اینا تو 2008 هست

mostafaaa
پنج شنبه 02 آبان 1387, 17:16 عصر
من همیشه قبل از اینکه یه کدی رو بزارم اول تستش میکنم. و این کد رو میدونم که هم توی 2008 و هم توی 2005 جواب میده.
البته کد دوستمون Mortea_261 هم به درستی کار میکنه و مشکلی هم نداره.

morteza_261
پنج شنبه 02 آبان 1387, 17:44 عصر
سلام
منم هم کد خودم و هم کد آقا مصطفی رو تو 2005 باهاش کار کردم و جواب داده.

میگم شما مطمئنی روی خود فرم کلیلک میکنی و این کد ها عمل نمیکنه،چون این کدها فقط وقتی موس روی خود فرم کلیک میشه عمل میکنه و اگر روی اجزای فرم کلیک کنی هیچ اثری نداره....

نمیدونم کد ها که هیچ مشکلی نداشت بگردید ببینید مشکل کجاست...یا اگه امکانش هست برنامه یا کد اون فرم روبزارید ببینیم چه میشه کرد

ایام به کام

rezapassword
پنج شنبه 02 آبان 1387, 22:16 عصر
فکر میکنم بدونم مشکل کجاست