2011-12-20 3 views
0

私のアプリケーションのステータスバーにCPU使用量を表示したいと思います。私は、次のコードを使用し、それを示すために:string.Formatは、同じラベルにテキストと浮動小数点を使用することで回避します

statusLabelCpu.Text = string.Format("CPU Load: {0:000.00}%", _cpuLoad.NextValue()); 

上記のコードでは非常に大きな問題がありますが、それは常に5つの数字を示し、負荷が100%にうなずいている場合、つまり、それは050.21%のように示してこれはあまりにも醜いです!

私は本当に2つのラベルを使いたくありません。実際の数字だけを表示してこの固定幅を作ることは可能ですか?何かのように:(空きスペースの指標として、これらのダッシュを持っていこう!)

CPU Load:-0%  - 
CPU Load:-1.1% - 
CPU Load:-8.01% - 
CPU Load:-99.99% - 
CPU Load:-100% - 
CPU Load:-56.06% - 

注:私は私のステータスバーに2つのラベルを持っています。このCPUカウンタは右に移動します。左側のSPRINGプロパティがtrueに設定されています。それは私の質問と関係がある場合!

答えて

4

あなたがこれを使用することができ空白で左側のパッドにそれをするokです:あなたは右側にパッドにしたい場合は、あなたがこのようにそれをしなければならない

string.Format("CPU Load: {0,8:0.##}%", load) 

becaus

"CPU Load: " + string.Format("{0:0.##}%", load).PadRight(8) 

[CPU Load:  20,1%] 
での最初の結果:番号の後にパーセント文字の

[CPU Load: 20,1% ] 
0
statusLabelCpu.Text = string.Format("CPU Load: {0:0.00}%", _cpuLoad.NextValue()); 
+0

質問 –

+0

に更新しても有効ではありません。これはうまくいきません。負荷が高くなると、CPU負荷:が左に飛びます。また、loadが0の場合、 'CPU Load:0%' 0.00%ではないことを表示したい –

+0

大文字と小文字の違いに応じて別のフォーマット文字列を使用する必要があります。 –

0
String.Format("CPU Load: {0,-7:0.##}%", _cpuLoad.NextValue); 

における第二の結果は、整列-7整列7左の長さとパッドです。 #が存在すれば数字を表示します。

+0

パディングは数字と%記号の間になります。 – Ray

+0

良い点は、それを見ていない、開発者のテストは再び乗る。 @nemesvが以下で解決したように見えます。 –

関連する問題