你如何正确对齐标签中的输出?

时间:2015-09-22 01:54:19

标签: c# label string-formatting

这是我的代码,(GUI应用程序):

const double TIPSTEP = 0.05;
double dinnerPrice = 10.00;
double tipRate;
double tip;
double lowRate, maxRate, minDinner, maxDinner;

lowRate = Convert.ToDouble(txtLowTip.Text);         
maxRate = Convert.ToDouble(txtHighTip.Text);          
minDinner = Convert.ToDouble(txtLowDinner.Text);         
maxDinner = Convert.ToDouble(txtHighDinner.Text);

lblOutput.Text = "   Price";           
for (tipRate = lowRate; tipRate <= maxRate; tipRate += TIPSTEP)
    lblOutput.Text += String.Format("{0, 8}", tipRate.ToString("F"));

lblOutput.Text += "\n-----------------------------------------------------------------\n";
tipRate = lowRate;
while (dinnerPrice <= maxDinner)
{
    lblOutput.Text += String.Format("{0, 8}", dinnerPrice.ToString("C"));
    while (tipRate <= maxRate)
    {
        tip = dinnerPrice * tipRate;
        lblOutput.Text += String.Format("{0, 8}", tip.ToString("F"));
        tipRate += 0.05;
    }
    dinnerPrice += minDinner;
    tipRate = lowRate;
    lblOutput.Text += "\n";
}

我认为我做得对。我首先把它写成一个控制台应用程序,它排列完好。这次数字不应该像他们应该的那样对齐,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

  

我首先将其作为控制台应用程序编写,并且排列完美。

控制台窗口使用固定宽度字体。

当您切换到Windows GUI应用程序时,您现在拥有可变宽度字体。 'M'比'i'宽得多。

您可以将标签的字体设置为Courier或其他固定宽度的字体。