GcProgressBarコントロールの配置と設定
GcProgressBarコントロールはVS標準のProgressコントロールの機能拡張版で、Windows Vistaのアニメーション効果に加え、独自の進捗表示スタイルを作成できます。
塗りつぶしの方向やバー自体の向きの変更、設計時の書式設定によって現在の進行状況に関する詳細情報を文字としてコントロールに表示できます。
バーの動作範囲は「Maximum」と「Minimum」プロパティで設定でき、進行状況はValueプロパティに設定します。バーの数値表示は「DisplayTextFormat」プロパティで行います。あらかじめプリセットされている「値のタイプ」を使用し、これを元に加工することで自作の数値表示を行うことができます。
「値のタイプ」に使用できるキーワード
「値のタイプ」に指定できるキーワードは下記のとおりです。これらのキーワードのほかに、任意のリテラル文字と組み合わせて表示するテキストの書式を設定できます。
キーワード | 説明 |
[v] | コントロールの現在値(Value プロパティの値) |
[p] | 全体の進行範囲に対する完成の度合い(Value プロパティの値に基づいたパーセンテージ) |
[s] | 全体の進行範囲(Maximum - Minimum の値) |
[m] | コントロールの最小値(Minimum プロパティ) |
[M] | コントロールの最大値(Maximum プロパティ) |
[^v] | タスク完了までの残り値(Maximum - Value の値) |
[^p] | 全体の進行範囲に対する未完成の度合い(完了までの残り値に基づいたパーセンテージ) |
「値の書式」に使用できるキーワード
「値の書式」では、「値のタイプ」で設定する値の書式を指定します。書式に指定できるキーワードは下記のとおりです。それ以外の文字は使用できません。
キーワード | 説明 |
# | 数値の桁を指定します。値が0の場合は何も表示されません。 |
0 | 数値の桁を指定します。値が0の場合は0を表示します。 |
.(ピリオド) | 小数点の表示位置を指定します。 |
,(コンマ) | 桁区切り記号の表示位置を指定します。 |
今回は、取得するDisk Transfer値を正確に表示する機能ではなく、ディスクにアクセスしているかどうかを視覚的に表示するためだけなので、動作範囲は「Maximum」プロパティを1000に設定します。数値は表示しないのでDisplayTextFormatプロパティの値を削除します。
PerformanceCounterクラスの使い方
PerformanceCounterクラスは、先に説明したようにWindowsのパフォーマンスカウンタの機能を取り出して使うことができるクラスです。
この機能を使うには、「CategoryName」「CounterName」「InstanceName」「MachineName」の4つのプロパティを使用します。最低でも「CategoryName」「CounterName」を使用し、「InstanceName」「MachineName」はカウンタによって使用するかどうかが決まります。
使用するプロパティについては、コントロールパネルのアプリケーション「パフォーマンスモニタ」の「カウンタの追加」ダイアログで知ることができます。例えば、次の画面は「Processor」の「IdleTime」を表示するカウンタを追加しようとしています。リスト内の太字の文字が「CategoryName」、「%」で始まっているのが「CounterName」になります。そして、このカウンタではCoreDuoプロセッサのどちらのCPUの値を取り出すのかを選ぶリストが表示されますが、これが「InstanceName」になります。
「MachineName」はリストのコンピュータです。特にコンピュータを選ばなければ指定しません。
今回は、この中から「LogicalDisk」のカウンタ「Disk Transfers/sec」を使用します。「InstanceName」には各ドライブ名を指定し、それぞれのドライブでの転送速度を取得します。