2013年3月13日水曜日

(C#, VB.NET)コントロールのスクリーン座標(画面座標)取得

コントロールのスクリーン座標(画面座標)取得方法です。

以下は、フォーム上に button1 というコマンドボタンがあり、そのボタンを基準にスクリーン座標を取得する場合のサンプルです。
■C#
Point p = this.button1.PointToScreen(new Point(0, 0));
int x = p.X;
int y = p.Y;

■VB.NET
Dim p As Point = Me.button1.PointToScreen(New Point(0, 0))
Dim x As Integer = p.X
Dim y As Integer = p.Y

xには横軸、yには縦軸の値が入ります。画面左上が(0, 0)で基準となり、右はx加算、左はx減算、下はy加算、上はy減算となります。

他に、画面座標をコントロールから見たクライアント座標に変換する PointToClient メソッドがあります。

■環境
OS:Microsoft Windows XP Home Edition 日本語 Service Pack 3
IDE:Microsoft Visual Studio 2005 Standard Edition 日本語 Service Pack 1
Framework:Microsoft .NET Framework Version 2.0 SP2

■関連投稿
(C#, VB.NET)コントロールのスクリーン座標(画面座標)取得
(C#, VB.NET)スクリーン座標(画面座標)をコントロールから見たクライアント座標に変換