移动光标位置?

时间:2014-03-10 07:33:44

标签: .net vb.net

使用下面的代码,我想将屏幕上的光标移动到可以正常工作的点(200,200),但是当我移动鼠标(用我的手)时,光标会立即返回到原始位置。我做错了什么?

我在XP主机上运行的KVM虚拟机上运行linux - 这不会影响此程序的运行方式。

我也尝试了各种公告牌提出的其他方法,但它们都有同样的效果。

Public Class Form1     Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs)Handles Me.Load       System.Windows.Forms.Cursor.Position =新点(200,200)     结束子 结束班

感谢您的评论。

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits Windows.Forms.Form



    ' Inherits System.Windows.Forms.Form
    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()

        Me.SuspendLayout()
        '

        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(292, 266)

        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub


End Class


Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim abc As New Point
        abc.Offset(200, 200)
        Cursor.Position = PointToScreen(abc)
    End Sub
End Class

上面的部分类是由集成开发环境生成的。最后一节仅包含您建议的代码。所以我没有做任何事情 “鼠标移动”事件。但是,在过去的测试中,我为鼠标移动创建了一个受保护的覆盖子,我的代码将在调试模式中逐步执行此子 当我移动光标。这背后的想法,如果我覆盖基类中的sub - 我可以阻止它在基类中做任何事情 用鼠标移动(例如将光标移回原位)。但我不确定我的覆盖类是否阻止了这一点 或者光标被基类中的另一个方法移回原来的位置 - 我看不到。

是否有可能能够调试并步入作为基类一部分的代码 - 这样我就可以确切地看到发生了什么。目前,当我踏入 调试时,它只显示我的类中的方法而不是基类中的方法。

2 个答案:

答案 0 :(得分:2)

是的我试过Windows xp 32位本机 - 没有虚拟机,而cursor.position = new point(200,200)按预期工作。所以问题必须是我的虚拟机设置。我在Virtual Box和KVM上都尝试过,两者都没有正确处理光标位置命令。

答案 1 :(得分:-1)

Exaplanation

我们将接受任何变量并将其声明为New Point。我们要做的下一步是使用abc控件定义offset变量的位置。最后将鼠标移动到abc。

代码和示例

abc.Offset(200, 200)
Cursor.Position = PointToScreen(abc)

我希望它完美地运作!