C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

カーソル位置の取得方法に関して /RPG (19/07/02(Tue) 11:17) #91501
Re[1]: カーソル位置の取得方法に関して /Hongliang (19/07/02(Tue) 11:28) #91502
  └ Re[2]: カーソル位置の取得方法に関して /RPG (19/07/02(Tue) 11:37) #91503 解決済み


親記事 / ▼[ 91502 ]
■91501 / 親階層)  カーソル位置の取得方法に関して
□投稿者/ RPG (1回)-(2019/07/02(Tue) 11:17:26)

分類:[.NET 全般] 

Chart上でカーソル位置を取得したいのですが



Private Sub Chart1_MouseMove(sender As Object, e As MouseEventArgs) Handles Chart1.MouseMove

方法1

Dim wx1 = e.X
Dim wy1 = e.Y

方法2
Dim hhh = Me.PointToClient(Windows.Forms.Cursor.Position)

End Sub



方法1で取得すると、
875x665
になるのに対し
方法2で取得すると
887x677
になり、わずかにずれた値となります。
前者が正しく、後者が間違った座標となります。

後者の方法だと正確に取得できないのはなぜなのでしょうか?




[ □ Tree ] 返信 編集キー/

▲[ 91501 ] / ▼[ 91503 ]
■91502 / 1階層)  Re[1]: カーソル位置の取得方法に関して
□投稿者/ Hongliang (833回)-(2019/07/02(Tue) 11:28:12)
MouseEventArgsが提供するXやYやLocationは、senderであるコントロールのクライアント座標系における座標を表します。
この場合Chart1がsenderですね。

Me.PointToClientはそのメソッドを定義しているコントロールのクライアント座標系における座標を取得します。
Chart1_MouseMoveメソッドが定義されているのがFormかUserControlか分かりませんが、それが基準ということですね。
[ 親 91501 / □ Tree ] 返信 編集キー/

▲[ 91502 ] / 返信無し
■91503 / 2階層)  Re[2]: カーソル位置の取得方法に関して
□投稿者/ RPG (2回)-(2019/07/02(Tue) 11:37:55)
Chart1.PointToClient
にすれば良かったのですね
どうもありがとうございました。

解決済み
[ 親 91501 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -