- 題名: カーソル位置にあるコントロールの取得
- 日時: 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]
お世話になります。
フォーム上にグループボックスが多重に重ねて配置しているようなレイアウトがあり、その他ボタン等も多数配置しています。マウスカーソルがある位置にあるコントロールを取得したいのですが、どのような手段がありますでしょうか。
それぞれのコントロール座標内にマウスカーソルの座標がふくまれているかを検索していく方法だと、重ねられたグループボックスの場合などで座標が重複するので、正しく検索できないケースがでてきます。簡単に取得する手段はありますでしょうか。
以上、よろしくお願いします。