|
.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」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




