.NET TIPS 待機状態のマウス・カーソルを表示するには?デジタルアドバンテージ2004/03/12 |
|
|
Windowsアプリケーションで時間のかかる処理を行う場合、その処理実行中にユーザー・インターフェイスに何も表示されていないと、それが本当に実行中なのか、もしくはアプリケーションがハングアップ(フリーズ)してしまったのか、区別が付かないことが多い。
このような場合、進行状況(処理の何%が完了したか)を表すメーター(ProgressBarコントロール)を使った「進行状況ダイアログ」を表示するというのが1つの対処方法である。しかし5秒程度の短い処理だと、ダイアログのメーターがあっという間に100%に達して、すぐにダイアログが閉じられてしまうため、ユーザーにとって使い勝手はよくない。
このような時間がかかるものの、大して長くない処理、約10秒以内の微妙な長さの処理では、マウス・カーソルを待機(Wait)状態にして処理中を表現する方法がお勧めだ(以降、「待機状態のマウス・カーソル」は「待機カーソル」と記述する)。ここでは、その方法について解説する。
以下の画面では、通常状態のマウス・カーソルが表示されている。
通常のマウス・カーソルの表示 |
何もしていない状態では、通常のマウス・カーソルが表示されている。 |
このマウス・カーソルの表示を、待機カーソルに変更したのが次の画面だ。なお、下の画面のアプリケーションでは、[Waitカーソル表示]ボタンをクリックすると、5秒間だけマウス・カーソルが待機カーソルに変更される。5秒たつと再び通常のマウス・カーソル表示に戻るようになっている。
待機状態のマウス・カーソルの表示 |
[Waitカーソル表示]ボタンをクリックすると、5秒間だけマウス・カーソルが待機カーソルに変更される。5秒たつと再び通常のマウス・カーソル表示に戻る。 |
上の画面のアプリケーションのように、通常のマウス・カーソルの表示を待機カーソルに変更して、5秒後に再び通常カーソルに戻すには、「現在のカーソル」の状態を「元のカーソル」の状態としていったん保存しておいて、「現在のカーソル」を「待機カーソル」に変更する。そして5秒後に、「現在のカーソル」を、保存しておいた「元のカーソル」に戻せばよい。
Windowsフォームでは、マウス・カーソルはCursorクラス(System.Windows.Forms名前空間)のオブジェクトで示される。実行中のWindowsアプリケーションの「現在のカーソル」は、そのCursorクラスの静的プロパティであるCurrentプロパティから得られるので、まずこれを「元のカーソル」として一時変数などに保存しておく。次に、システムで用意されている「待機カーソル」を、Cursorsクラス(System.Windows.Forms名前空間)の静的プロパティであるWaitCursorプロパティから取得して、先ほどのCurrentプロパティに設定する。すると、Windowsアプリケーション全体でカーソルが待機状態で表示されるようになる。そして5秒後に、先ほどの「元のカーソル」をCurrentプロパティに再設定して、カーソルを元の状態に戻す。
この処理を実際に実装したサンプル・プログラムを次に示す。
|
|
待機カーソルを表示するサンプル・プログラム | |
サンプル・プログラム(C#:waitcursor.cs、VB.NET:waitcursor.vb)のダウンロード |
この待機カーソルを使って処理実行中を表現する場合は、1秒以上10秒未満くらいの微妙な長さの処理の場合に最適である。もしこれより長い処理の場合は、「進行状況ダイアログ」を使う方がよいだろう。この「進行状況ダイアログ」を表示する方法については後日あらためて解説する。
カテゴリ:Windowsフォーム 処理対象:カーソル 使用ライブラリ:Cursorクラス(System.Windows.Forms名前空間) 使用ライブラリ:Cursorsクラス(System.Windows.Forms名前空間) |
|
「.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|