- 題名: カーソル位置にあるコントロールの取得
- 日時: 2013/10/06 11:46:40
- ID: 31847
- この記事の返信元:
- (なし)
- この記事への返信:
- [31848] Re[1]: カーソル位置にあるコントロールの取得2013/10/06 12:17:44
- ツリーを表示
WindowFromPoint という API と、Control.FromHandle という .NET のメソッドを併用する方法かなぁ。
[DllImport("user32.dll")]
private static extern IntPtr WindowFromPoint(Point point);
private void timer1_Tick(object sender, EventArgs e)
{
IntPtr handle = WindowFromPoint(Control.MousePosition);
if (handle != IntPtr.Zero)
{
Control control = Control.FromHandle(handle);
if (control != null)
{
Text = "Found: " + control.Text;
return;
}
}
Text = "Not found";
}
分類:[.NET]
お世話になります。
フォーム上にグループボックスが多重に重ねて配置しているようなレイアウトがあり、その他ボタン等も多数配置しています。マウスカーソルがある位置にあるコントロールを取得したいのですが、どのような手段がありますでしょうか。
それぞれのコントロール座標内にマウスカーソルの座標がふくまれているかを検索していく方法だと、重ねられたグループボックスの場合などで座標が重複するので、正しく検索できないケースがでてきます。簡単に取得する手段はありますでしょうか。
以上、よろしくお願いします。