PDA

View Full Version : تشخیص جهت Scroll



saghari
جمعه 04 آذر 1384, 02:04 صبح
با سلام
من میخوام بدونم چطور میتونم تشخیص بدم وقتی کاربر موس رو اسکرول میکنه داره به سمت بالا اسکرول میکنه یا پائین.

asilverisis
جمعه 04 آذر 1384, 23:51 عصر
سلام



Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseWheel
If e.Delta = 120 Then
MsgBox("Scroll Up")
Else
If e.Delta = (-120) Then
MsgBox("Scroll Down")
End If
End If
End Sub

saghari
یک شنبه 06 آذر 1384, 12:38 عصر
با سلام و تشکر از توجه شما
کد شما کار نکرد. لطفا بیشتر راهنمایی کنید

saghari
یک شنبه 06 آذر 1384, 12:59 عصر
با سلام مجدد
وقتی این کد را برای mousewheel خود فرم مینویسیم کار میکنه اما وقتی در کنترل mouseweel یک picture box یا panel مینویسم کار نمیکنه. با توجه به اینکه من میخواهم جهت اسکرول موس را روی picture box تشخیص بدم باید چکار کنم

saghari
یک شنبه 06 آذر 1384, 13:55 عصر
بازم سلام
مشکل رو یه جوری حل کردم ولی فکر نکنم خیلی اصولی باشه. من یه متغیر بولین تعریف کردم مثلا x و در Mouse Enter مربوط به PictureBox گذاشتم که آنزا true کند و برعکس در Mouse Leave آنرا false کند و بعد کد شما را به شکل زیر اصلاح کوچکی کردم


Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseWheel
If (e.Delta = 120 And x = True) Then
MsgBox("Scroll Up")
Else
If (e.Delta = (-120) And x = True) Then
MsgBox("Scroll Down")
End If
End If
End Sub

اما اگر راه حل بهتری دارید به من بگید ممنون میشم

asilverisis
دوشنبه 07 آذر 1384, 20:32 عصر
سلام
به نظر من روش خودت خوبه ولی می تونی از این روش هم استفاده کنی



Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseWheel
If (e.X >= PictureBox1.Left) And (e.X <= (PictureBox1.Left + PictureBox1.Width)) Then
If (e.Y >= PictureBox1.Top) And (e.Y <= (PictureBox1.Top + PictureBox1.Height)) Then

If e.Delta = 120 Then
MsgBox("UP")
Else
MsgBox("DOWN")
End If

End If
End If
End Sub



این روش خوبیش اینه که می شه اونو برای همه کنترل ها تعمیم داد

saghari
سه شنبه 08 آذر 1384, 21:55 عصر
از راهنمایی شما ممنونم