Vol*_*ort 4 .net vb.net mouse mouseevent drag
首先,我想知道鼠标是否在某个区域.然后,我想检查鼠标是否按住左键.我想检查只要左按钮关闭,我想跟踪鼠标的位置.最后,检查左按钮何时释放.
那么,简而言之,我应该从哪里开始跟踪表单中的鼠标事件?
一般来说,当鼠标按下事件发生时,需要捕获鼠标。然后,即使鼠标离开捕获鼠标的控件区域,您也会收到鼠标移动事件。您可以计算鼠标移动事件中的增量。当增量第一次超过系统定义的“拖动区域”时,就会发生拖动。当接收到鼠标松开事件时,停止拖动操作。
在 Windows 窗体中,查看 Control 类上的 MouseDown、MouseMove 和 MouseUp 事件。MouseEventArgs 将包含 X/Y 坐标。要捕获或释放鼠标,请将 Capture 属性分别设置为 true 或 false。如果不捕获鼠标,则当鼠标在控件边界之外释放时,您将不会收到 MouseMove 或 MouseUp 事件。
最后,要确定开始拖动操作之前允许鼠标移动的最小“距离”,请查看 SystemInformation.DragSize 属性。
希望这可以帮助。
小智 5
这是一个用于检测拖动或单击的简单代码
Public IsDragging As Boolean = False, IsClick As Boolean = False
Public StartPoint, FirstPoint, LastPoint As Point
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picBook.Click
If IsClick = True Then MsgBox("CLick")
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picBook.MouseDown
StartPoint = picBook.PointToScreen(New Point(e.X, e.Y))
FirstPoint = StartPoint
IsDragging = True
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picBook.MouseMove
If IsDragging Then
Dim EndPoint As Point = picBook.PointToScreen(New Point(e.X, e.Y))
IsClick = False
picBook.Left += (EndPoint.X - StartPoint.X)
picBook.Top += (EndPoint.Y - StartPoint.Y)
StartPoint = EndPoint
LastPoint = EndPoint
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picBook.MouseUp
IsDragging = False
If LastPoint = StartPoint Then IsClick = True Else IsClick = False
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9518 次 |
| 最近记录: |