string.Format обходной путь с текстом и плавающей точкой в ​​одной метке - PullRequest
0 голосов
/ 20 декабря 2011

Я хочу показать использование процессора в строке состояния моего приложения.Для его отображения я использую следующий код:

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 метки в моей строке состояния.этот счетчик процессора идет направо.для того, что слева, свойство SPRING имеет значение true!если это как-то связано с моим вопросом!

Ответы [ 3 ]

4 голосов
/ 20 декабря 2011

Когда все в порядке, чтобы заполнить его с левой стороны пробелами, вы можете использовать это:

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

Когда вы хотите заполнить правую сторону, вы должны сделать это следующим образом из-за символа процента после числа:

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

Первые результаты в

[CPU Load:     20,1%]

Второй результат

[CPU Load: 20,1%   ]
0 голосов
/ 20 декабря 2011
String.Format("CPU Load: {0,-7:0.##}%", _cpuLoad.NextValue);

, выровнять -7 - выровнять по длине 7 по левому краю. # печатать цифру, если она существует.

0 голосов
/ 20 декабря 2011
statusLabelCpu.Text = string.Format("CPU Load: {0:0.00}%", _cpuLoad.NextValue());
...