1

我想更改光标在特定标签上的位置。我用:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Cursor.Position = Label17.Location

End Sub

但它不会改变我想要的地方。我试过了:

   Label16.Location = Label17.Location

这会正确移动 label16。

那么我们如何将光标移动到 label17 或任何标签/对象的位置。

4

1 回答 1

3

问题是 Label.Location (和任何其他 Control.Location )指的是相对于其容器左上角的位置。这意味着您必须调用父容器的 PointToScreen 方法。在一个只有 Form 而没有任何其他容器的简单应用程序中,它将是:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Cursor.Position = Me.PointToScreen(Label17.Location)

End Sub

一个更优雅的:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Cursor.Position = Label17.Parent.PointToScreen(Label17.Location)

End Sub
于 2013-03-04T22:43:29.450 回答