|
.NET TIPS マウス・カーソルの位置を取得・設定するには?デジタルアドバンテージ 一色 政彦2005/11/18 |
![]() |
|
|
|
主にWindowsアプリケーションでは、マウス・カーソルの位置を調べてから何らかの処理を実行したい場合がある。例えば、クリックされた場所に対して何らかの描画をしたり、その場所に小さなウィンドウを表示したりしたいような場合だ。
このような場合で、実際にカーソルの現在の位置を取得・設定するには、基本的にCursorクラス(System.Windows.Forms名前空間)のPositionプロパティを利用すればよい。またカーソル位置の取得のみでよければ、Controlクラス(System.Windows.Forms名前空間)のMousePositionプロパティも利用できる。
これらはいずれも静的なプロパティで、データ型はPoint型(System.Drawing名前空間)である。なおPoint型のXプロパティを利用することでX座標軸の位置を、またYプロパティを使用することでY座標軸の位置を取得できる。
次の画面は、これらのプロパティを利用して作成したWindowsアプリケーションである。
![]() |
| カーソルの位置を取得・設定するWindowsアプリケーションの例 |
| フォームの上部にはマウス・カーソルの位置を文字列化したものが表示される。この例ではX座標として「1276」が、Y座標として「489」が表示されている(単位はピクセル)。また下部に配置されている[カーソルを画面中央に移動]ボタンをクリックすると、プライマリ・スクリーンの中央にマウス・カーソルが移動する。 |
このアプリケーションは、10ミリ秒ごとにマウス・カーソルの現在位置を取得して、フォームの上部に配置したLabelコントロールに現在位置の情報を文字列化して表示する。また、[カーソルを画面中央に移動]ボタン(button1コントロール)をクリックすると、マウス・カーソルがプライマリ・スクリーン中央に移動する仕様になっている(なおプライマリ・スクリーンとは、コンピュータに複数のディスプレイが接続されている場合、そのメインとなるディスプレイのこと。ディスプレイが1つしか接続されていない場合は、そのディスプレイがプライマリ・スクリーンである)。
なお、10ミリ秒ごとに処理を実行する方法の詳細は「TIPS:タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編)」を参考に、またスクリーン中央の位置を取得する方法については「TIPS:ディスプレイの解像度を取得するには?」を参照していただきたい。
以下はカーソルの位置を取得・設定している部分のソース・コードである。なおソース・コード全体は、このサンプル・プログラムの説明欄のリンク(下の「C#版のダウンロード」「VB.NET版のダウンロード」)からダウンロードできる。
|
||
| マウス・カーソルの取得・設定を行うサンプル・プログラム(上:C#、下:VB.NET) | ||
マウス・カーソルの位置情報を実際に活用する際には注意する点が1つある。先に示したサンプル・プログラムの実行結果を見て分かるように、マウス・カーソルの位置情報はスクリーン全体における位置(スクリーン座標)として取得される。しかしWindowsアプリケーションの基本的な座標計算は、自分自身の領域(クライアント領域)における位置(クライアント座標)を基準に計算する。
従って、例えばマウス・カーソルの位置がフォーム内のどこにあるのかを調べるには、その位置をいったんスクリーン座標からクライアント座標に変換する必要があるのだ。この座標変換の方法については「TIPS:スクリーン座標←→クライアント座標の変換を行うには?」で紹介している。![]()
| カテゴリ:Windowsフォーム 処理対象:カーソル 使用ライブラリ:Cursorクラス(System.Windows.Forms名前空間) 使用ライブラリ:Controlクラス(System.Windows.Forms名前空間) 使用ライブラリ:Point構造体(System.Drawing名前空間) 関連TIPS:タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編) 関連TIPS:ディスプレイの解像度を取得するには? 関連TIPS:スクリーン座標←→クライアント座標の座標変換を行うには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



