PDA

View Full Version : تغییر مکان عکس در فرم



akbar_online
جمعه 11 بهمن 1387, 11:44 صبح
من برای اینکه یک عکس را با موس بگیرم و به در مکان دیگه فرم قرار بدهم باید چیکار کنم

shask00l
جمعه 11 بهمن 1387, 12:24 عصر
در رویداد mousemove باید این کار رو انجام بدید . فکر کنم از توی همین رویداد بتونید وضعیت کلید ماوس رو هم چک کنید . اگر نشد یه متغییر سراری تعریف کنید و توی رویداد mousedown مقدارش رو ست کنید و توی بخش move ازش استفاده کنید . برای حرکت دادن تصویر از خصوصیات top و left استفاده کنید و با توجه به موقعیت ماوس تغییرشون بدید .

توی این سایت در مورد حرکت دادن فرم به این صورت بحث شده اگر کد مربوط به اون رو ببینید دقیقا میفهمید که باید چکار بکنید. مراحل کارش فرقی نمیکنه .

akbar_online
جمعه 11 بهمن 1387, 12:36 عصر
در رویداد mousemove باید این کار رو انجام بدید . فکر کنم از توی همین رویداد بتونید وضعیت کلید ماوس رو هم چک کنید . اگر نشد یه متغییر سراری تعریف کنید و توی رویداد mousedown مقدارش رو ست کنید و توی بخش move ازش استفاده کنید . برای حرکت دادن تصویر از خصوصیات top و left استفاده کنید و با توجه به موقعیت ماوس تغییرشون بدید .

توی این سایت در مورد حرکت دادن فرم به این صورت بحث شده اگر کد مربوط به اون رو ببینید دقیقا میفهمید که باید چکار بکنید. مراحل کارش فرقی نمیکنه .

بیشتر توضیح می دید

akbar_online
یک شنبه 13 بهمن 1387, 16:36 عصر
کسی می تونه بگه چیکار کنم

masoud.t123
یک شنبه 13 بهمن 1387, 18:17 عصر
دوست عزیز اینجا را نگاه کن شاید مشکلت حل شه

http://barnamenevis.org/forum/showpost.php?p=471135&postcount=79 (http://barnamenevis.org/forum/showpost.php?p=471135&postcount=79)

akbar_online
یک شنبه 13 بهمن 1387, 21:48 عصر
دوست عزیز اینجا را نگاه کن شاید مشکلت حل شه

http://barnamenevis.org/forum/showpost.php?p=471135&postcount=79 (http://barnamenevis.org/forum/showpost.php?p=471135&postcount=79)

می شه یک توضیحی بدین این کار نکرد

sari-1369
یک شنبه 13 بهمن 1387, 23:53 عصر
دوست عزیز .

این کد رو امتحان کن .



Public Class Form1

Dim x, y As Integer


Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown


x = e.X

y = e.Y


End Sub


Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove


If e.Button = Windows.Forms.MouseButtons.Left Then

PictureBox1.Left = Windows.Forms.Cursor.Position.X - x

PictureBox1.Top = Windows.Forms.Cursor.Position.Y - y

End If


End Sub


End Class

akbar_online
دوشنبه 14 بهمن 1387, 19:21 عصر
کسی نیست یک راحل به ما بده :ناراحت:

sari-1369
سه شنبه 15 بهمن 1387, 00:32 صبح
مهنس ، این کدی که من گزاشتم کار کردااااا . امتحان کردم

mostafaaa
سه شنبه 15 بهمن 1387, 09:45 صبح
سلام دوست من
برات یه کلاس ساده نوشتم که هر کنترلی رو روی فرم میتونی با استفاده از اون حرکت بدی!!

Public Class ControlMover
Private PX As Integer
Private PY As Integer
Sub New(ByVal CTRL As Control)
AddHandler CTRL.MouseDown, AddressOf Down
AddHandler CTRL.MouseMove, AddressOf Move
End Sub
Private Sub Down(ByVal sender As Control, ByVal e As MouseEventArgs)
PX = sender.PointToClient(Cursor.Position).X
PY = sender.PointToClient(Cursor.Position).Y
End Sub
Private Sub Move(ByVal sender As Control, ByVal e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
sender.Left = sender.Parent.PointToClient(Cursor.Position).X - PX
sender.Top = sender.Parent.PointToClient(Cursor.Position).Y - PY
End If
End Sub
End Class

کد استفاده کردن ازش هم به این شکله :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim PM As New ControlMover(Me.PictureBox1)
Dim BM As New ControlMover(Me.Button1)
Dim LM As New ControlMover(Me.Label1)
End Sub
یا علی

akbar_online
سه شنبه 15 بهمن 1387, 13:12 عصر
سلام دوست من
برات یه کلاس ساده نوشتم که هر کنترلی رو روی فرم میتونی با استفاده از اون حرکت بدی!!

Public Class ControlMover
Private PX As Integer
Private PY As Integer
Sub New(ByVal CTRL As Control)
AddHandler CTRL.MouseDown, AddressOf Down
AddHandler CTRL.MouseMove, AddressOf Move
End Sub
Private Sub Down(ByVal sender As Control, ByVal e As MouseEventArgs)
PX = sender.PointToClient(Cursor.Position).X
PY = sender.PointToClient(Cursor.Position).Y
End Sub
Private Sub Move(ByVal sender As Control, ByVal e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
sender.Left = sender.Parent.PointToClient(Cursor.Position).X - PX
sender.Top = sender.Parent.PointToClient(Cursor.Position).Y - PY
End If
End Sub
End Class
کد استفاده کردن ازش هم به این شکله :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim PM As New ControlMover(Me.PictureBox1)
Dim BM As New ControlMover(Me.Button1)
Dim LM As New ControlMover(Me.Label1)
End Subیا علی
یک دنیا ممنون

AliRezaBeytari
چهارشنبه 22 آذر 1391, 14:10 عصر
داداش اگه میشه یه سورس هم در رابطه با این بزار:گریه::عصبانی++:

AliRezaBeytari
پنج شنبه 23 آذر 1391, 12:01 عصر
پس چی شد؟چرا کسی سورسو نمی زاره؟:گریه::ناراحت::عصبانی:: فسرده::عصبانی++:

shahryari
پنج شنبه 23 آذر 1391, 12:22 عصر
سلام
در پست زیر توضیح داده ام
http://barnamenevis.org/showthread.php?349795-جابجايي-و-حركت-دادن-فرمي-كه-TitleBar-ندارد&p=1543828&viewfull=1#post1543828