PDA

View Full Version : سوال: کار با موس



tstsst
دوشنبه 18 مهر 1390, 16:08 عصر
سلام

کدی میخواستم برای اینکه با یک بار چپ کلیک یک کاری رو انجام بده و در همون حالت بمونه تا دو باره کلیک کنیم و با راست کلیک انجام نده و به حالت اول بر گرده
(برای مثال با کلیک روی یک کلید(لیبل و...) لوکیشنش برابر موس پوزیشن بشه
(Label1.Location = MousePosition) و با دوباره کلیک کردن همون جاکه کلیک کردن بمونه و با راست کلیک به جای اول برگرده )

سپاس..

kiarashk
دوشنبه 18 مهر 1390, 21:09 عصر
[QUOTE=tstsst;1354705]سلام

کدی میخواستم برای اینکه با یک بار چپ کلیک یک کاری رو انجام بده و در همون حالت بمونه تا دو باره کلیک کنیم و با راست کلیک انجام نده و به حالت اول بر گرده
(برای مثال با کلیک روی یک کلید(لیبل و...) لوکیشنش برابر موس پوزیشن بشه
(Label1.Location = MousePosition) و با دوباره کلیک کردن همون جاکه کلیک کردن بمونه و با راست کلیک به جای اول برگرده )


تا جايي كه يادم مي اد از system.mouse استفاده كني اگه جواب رو پيدا نكردي يه ايميل بهم بزن تا يه سورس كد رو برات از روي لب تاپم ارسال كنم.
kkiani@live.cotm

موفق باشيد

sina_saravi1
دوشنبه 18 مهر 1390, 23:26 عصر
سلام کار پیچیده ای نیست

شما میتونید با برنامه نویسی تو رویداد های مرد نظرتون به هدفتون برسین
برای مثال تو رویداد MousDown یه متغیر که تو کلاس معرفیش کردید رو مقدار دهی کنید
در رویداد MouseMove اول چک کنید که متغیر مرد نظر مقدار مورد نظر رو داره که اگه داشته location لیبل رو به position موس تغیر بده
تو رویداد MouseUp هم مقدار از اون متغیر برداره

اگه متوجه نشدی بگو برات کد بذارم

tstsst
سه شنبه 19 مهر 1390, 13:57 عصر
خیلی ممنون
درست شد ولی فاصله لیبل تا نشانگر موس خیلی زیاده راهی برای درست کردن هست ؟

بازم ممنون..

kiarashk
سه شنبه 19 مهر 1390, 14:15 عصر
خیلی ممنون
درست شد ولی فاصله لیبل تا نشانگر موس خیلی زیاده راهی برای درست کردن هست ؟

بازم ممنون..

به position موس چند واحد کم یا زیاد کن
مثلا:button1.location=new point (mouse.position.x-1,mose.position.y-1)

sina_saravi1
سه شنبه 19 مهر 1390, 14:48 عصر
خیلی ممنون
درست شد ولی فاصله لیبل تا نشانگر موس خیلی زیاده راهی برای درست کردن هست ؟

بازم ممنون..
برای این کار از متغیر e که در رویداد وجود داره استفاده کن

tstsst
سه شنبه 19 مهر 1390, 15:26 عصر
بازم ممنون

به position موس چند واحد کم یا زیاد کن
مثلا:button1.location=new point (mouse.position.x-1,mose.position.y-1)
سپاس | راه ساده تری نیست؟؟

برای این کار از متغیر e که در رویداد وجود داره استفاده کن
می شه بگید چتوری ؟
ممنون

sina_saravi1
سه شنبه 19 مهر 1390, 15:42 عصر
بازم ممنون

سپاس | راه ساده تری نیست؟؟

می شه بگید چتوری ؟
ممنون

سلام با مثال کلی :


Public Class Form1
Dim xx, yy As Double

Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
xx = e.X
yy = e.Y
End Sub

Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Label1.Location = New Point(Label1.Left + (e.X - xx), Label1.Top + (e.Y - yy))
End If
End Sub
End Class