.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」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|