|
.NET TIPS 簡単に待機カーソルを表示するには?[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦2006/03/17 |
![]() |
|
|
|
「TIPS:待機状態のマウス・カーソルを表示するには?」では待機状態のカーソル(WaitCursor。以降、待機カーソル)を表示する方法を紹介したが、.NET Framework 2.0では、この待機カーソルの表示がさらに簡単に実装できるようになっている。
具体的には、次のいずれかのメソッドを呼び出せばよい(いずれもSystem.Windows.Forms名前空間のクラスが持つプロパティ)。
- Applicationクラスの静的なUseWaitCursorプロパティ
- ControlクラスのUseWaitCursorプロパティ
いずれのプロパティもBoolean型の値を設定/取得でき、Trueを設定すれば待機カーソルが表示され、Falseを設定すればデフォルトのマウス・カーソルに戻る。クラス名を見れば分かるだろうが、Application.UseWaitCursorプロパティを設定すると、アプリケーション全体、すなわちすべてのWindowsフォーム上で待機カーソルが表示されるようにる。また、コントロールのUseWaitCursorプロパティを設定すると、そのコントロールとそのすべての子コントロール上で待機カーソルが表示されるようになる(なお、ここでいう「コントロール」とは、Controlクラスを継承したクラスで、例えばTextBoxコントロールなどのことである)。
次の画面は、UseWaitCursorプロパティの利用したサンプル・プログラムの実行例である。このサンプル・プログラムで、[アプリケーション全体]ボタンをクリックするとすべてのフォーム上で待機カーソルが表示され(Application.UseWaitCursorプロパティを使用)、[コントロール全体]ボタンをクリックするとその[コントロール全体]ボタン上でのみ待機カーソルが表示される(Control.UseWaitCursorプロパティを使用)という仕様になっている。また、それぞれもう一度クリックするとカーソル形状はデフォルトの状態に戻るというようにトグルする仕様になっている。
![]() |
| UseWaitCursorプロパティを利用したサンプル・プログラムの実行例 |
| [アプリケーション全体]ボタンをクリックするとすべてのフォーム上で待機カーソルが表示され、[コントロール全体]ボタンをクリックするとそのボタン上でのみ待機カーソルが表示される。それぞれもう一度クリックすると待機カーソルは解除され、デフォルトのカーソル形状に戻るという仕様になっている。 |
この実装コード(Clickイベント・ハンドラ部分のみを抜粋)は次のとおりだ。
|
||
| UseWaitCursorプロパティを利用したサンプル・プログラムのソース・コード(上:C#、下:VB) | ||
| UseWaitCursorプロパティがFalseの場合はTrueを設定し、またTrueの場合はFalseを設定することで、ボタンをクリックするたびに、カーソル形状を待機カーソルと通常カーソルの間でトグルさせている。 |
なお、フォームやコントロールをロードする時から待機カーソルを指定したい場合、Visual Studio 2005のIDEのWindowsフォーム・デザイナでフォームを開いて[プロパティ]ウィンドウのUseWaitCursorを「True」に設定すればよい。
ただし、UseWaitCursorプロパティを利用する際には注意点がある。UseWaitCursorプロパティを設定しても、コントロールやフォームのマウス・カーソル設定が即座に変更されるわけではないらしく(マウス・カーソルが変更されるのは、恐らくマウスが動いたなどのWindowsイベントが発生して、ユーザー・インターフェイス関連の更新があったタイミングだと思われる)、UseWaitCursorプロパティ設定直後に処理を行う次のようなコード(C#の場合)では、待機カーソルが表示されない可能性が高い。
private void button1_Click(object sender, System.EventArgs e)
{
button2.UseWaitCursor = true;
System.Threading.Thread.Sleep(5000);
button2.UseWaitCursor = false;
}
このようにイベント・ハンドラを抜けずにUseWaitCursorプロパティをオン/オフさせる場合は、前掲のTIPSの方法を取った方が無難である。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:カーソル 使用ライブラリ:Applicationクラス(System.Windows.Forms名前空間) 使用ライブラリ:Controleクラス(System.Windows.Forms名前空間) 関連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 -



