2013-03-04 108 views
0

我想要将光标在特定标签上的位置更改。我用:在visual basic中更改光标位置

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或任何标签/对象的位置。

回答

2

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

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