我有第三方图片控件,我可以在其中绘制形状。通过代码,我从磁盘上加载一张图片并在图片上画一个小方块。默认情况下,我可以使用鼠标拖动图片周围的这个方块。但是,有时放置方块需要精确,鼠标很难。我想使用键盘箭头键(或NumLock关闭时的数字小键盘箭头键)来拖动方块(可能是输入或空格以放下它)。
我还没有找到这个对象的“拖动”方法,这些方法可以让我将它置于“拖动”模式。所以,我想知道一旦选择了正方形(点击)我是否可以通过代码模拟鼠标。
到目前为止,我所做的只是简单地覆盖了ProcessCmdKey函数来捕获数字小键盘的箭头键,这样我就可以移动鼠标了。我需要做的是同时模拟鼠标,我不知道该怎么做?也许计时器发送mousedown然后阅读这些?任何帮助和示例将不胜感激。
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
Dim bHandled As Boolean = False
Select Case keyData
Case Keys.Up
If (Control.IsKeyLocked(Keys.NumLock) = False) Then
Cursor.Position = New Point(Cursor.Position.X, Cursor.Position.Y - 1)
End If
bHandled = True
Case Keys.Down
If (Control.IsKeyLocked(Keys.NumLock) = False) Then
Cursor.Position = New Point(Cursor.Position.X, Cursor.Position.Y + 1)
End If
bHandled = True
Case Keys.Right
If (Control.IsKeyLocked(Keys.NumLock) = False) Then
Cursor.Position = New Point(Cursor.Position.X + 1, Cursor.Position.Y)
End If
bHandled = True
Case Keys.Left
If (Control.IsKeyLocked(Keys.NumLock) = False) Then
Cursor.Position = New Point(Cursor.Position.X - 1, Cursor.Position.Y)
End If
bHandled = True
End Select
Return bHandled
End Function