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メソッドを呼び出す必要があることを意味します。他のコンテナなしでフォームを持っているだけの単純なアプリケーションでは、次のようになります。

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 に答える