【问题标题】:Vb.Net Move Mouse inside PictureBoxVb.Net 在 PictureBox 内移动鼠标
【发布时间】:2015-06-25 09:15:54
【问题描述】:

您好,我想将鼠标移动到图片框内的 X、Y 坐标,我正在从我的 Sub 获取我的坐标,就像这样

 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    LocalMousePosition = PictureBox1.PointToClient(Cursor.Position)

    txt_MouseLoc.Text = ("X=" & LocalMousePosition.X & "," & "Y= " & LocalMousePosition.Y)
End Sub

现在假设 x= 100 和 Y = 100

我想单击一个按钮并将鼠标移动到...你猜对了 x100 y100

但是我用这个来移动鼠标

Windows.Forms.Cursor.Position = New Point(x, y)
        Thread.Sleep(2000)
        Do_LMouseClick()
        Thread.Sleep(2000)

它根据屏幕而不是picturebox1将鼠标移动到x100和y100

我试过了

MouseLocation = picturebox1.pointtoscreen(x,y)

但没有任何想法?提前感谢!

【问题讨论】:

  • 是的!..明白了。现在鼠标移动得更近了,它在范围内,大约相差几个 pxl,但肯定比以前更近了。
  • 好的,很抱歉误删评论...嗯,偏移量可能是顶部的windows标题栏
  • 是的……我还有一个 MenuStrip……我添加了 +24 来补偿 Y,现在它排成一行!谢谢!

标签: vb.net mouseevent mousemove


【解决方案1】:

位置需要加上form的位置和picturebox的位置:

Windows.Forms.Cursor.Position = New Point(x + Me.Location.X + PictureBox1.Location.X, _
                                          y + Me.Location.Y + PictureBox1.Location.Y)

更新:

需要通过在 Y 方程中添加其高度来补偿表单的标题栏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2017-08-17
    • 2020-04-18
    • 2016-12-24
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多