چطور میتونم با کلیک رو یه باتن اون رو در فرم جابه جا کنم. آقایون مدیر دقت کنند که اینو پاک نکنن. چون اون سوال من تو Delphi بود و این در VB.NET.
ممنون.
چطور میتونم با کلیک رو یه باتن اون رو در فرم جابه جا کنم. آقایون مدیر دقت کنند که اینو پاک نکنن. چون اون سوال من تو Delphi بود و این در VB.NET.
ممنون.
بفرما
Public Class Form1
Dim x, y As Integer
Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
x = e.X
y = e.Y
End Sub
Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Button1.Location = New Point(e.X + Button1.Location.X - x, e.Y + Button1.Location.Y - y)
End If
End Sub
End Class
سلام دوست عزيز
اين كد ها رو برنامت اضافه كن. تمام كنترل هاي روي فرم قابل جابجايي ميشوند.
اگر توضيحات بيشتري لازم داشتي مطرح كن
Dim ControlMove AsBoolean
Dim ControlLocation As Point
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
AddMouseHandlersToAllControlsInForm()
EndSub
PrivateSub AddMouseHandlersToAllControlsInForm()
ForEach C As Control InMe.Controls
AddHandler C.MouseDown, AddressOf Controls_MouseDown
AddHandler C.MouseMove, AddressOf Controls_MouseMove
AddHandler C.MouseUp, AddressOf Controls_MouseUp
Next
EndSub
PrivateSub Controls_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
ControlLocation = e.Location
ControlMove = True
EndIf
EndSub
PrivateSub Controls_MouseMove(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs)
If ControlMove AndTypeOf sender Is Control Then
Dim cp As Point = Me.PointToClient(System.Windows.Forms.Cursor.Positio n)
Dim C As Control = sender
C.Location = New Point(cp.X - ControlLocation.X, cp.Y - ControlLocation.Y)
EndIf
EndSub
PrivateSub Controls_MouseUp(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs)
ControlMove = False
EndSub
anooshiran خوبین ؟؟؟
ممنون از راهنمایی هاتون .
شما کلا space تو کارت نیست ؟؟؟ :D اگه میشه کد بالا رو اصلاح کن .
راسی ، این خط دستو کجاهاش space داره ؟؟
AddMouseHandlersToAllControlsInForm()
سلام دوست عزيز
همانطور كه دوست خوبمان Hossein Bazyan فرموده اند اين نام تابع است و امكان Space گذاري در آن نيست. البته خدمتتات عرض كنم كه من كلا عادت به نامگذاري با مفهوم براي توابع و متغير ها و كلاسها دارم از اين رو گاهي اين اسامي طولاني ميگردد. مثلا اگر نام همين تابع را بخواهيد ترجمه كنيد ميشود " اضافه كردن اداره كننده هاي ماوس به تمام كنترلها در فرم ".