行状字符串,值之间间距均匀

时间:2015-04-01 19:41:31

标签: c# layout listbox

我正在尝试向ListBox添加多行和不同的部分,并且我需要使用“\ t”来创建布局。

listBox.Items.Add(emp[index].first + "\t\t" + emp[index].last + "\t\t" + emp[index].number + "\t\t" + emp[index].department + "\t\t" + "Annual Salary: " + (emp[index].annualSalary).ToString("c") + ", Annual Bonus: " + (emp[index].annualBonus).ToString("c"));

只是一个示例行。

它看起来像:(没有点)

  

Mary ....... Sue ................ 778-435-2321 .....会计......年薪:$ 33,000.00   特雷弗......约瑟夫........... 604-894-2902 .....营销.......年薪:52,000.00美元   史蒂夫......科林............. 778-234-5432 .....财务..........年薪:48,500.00美元   George ........... Watson .......... 604-910-2349 .....技术.......年薪:$ 25,000.00   莎莉.......亨德森..... 604-654-2325 .....销售..............年薪:12,000.00美元   Jenny ..... Motgomery ..... 604-692-4932 ..... Data Ana .......年薪:$ 12,000.00

任何人都可以解释为什么它显示所有不稳定的,以及我如何解决这个问题? 我在网上搜索过,但是没有找到任何使用\ t进行布局的结果。

1 个答案:

答案 0 :(得分:0)

首先,我强烈建议使用模式而不是使用加号连接字符串。这将有助于您更清楚地看到事情:

string pattern = string.Format("{0}\t\t{1}\t\t{2}\t\t{3}\t\tAnnualSalary: {4}, Annual Bonus: {5}", 
emp[index].first, 
emp[index].last, 
emp[index].number,
emp[index].department, 
emp[index].annualSalary).ToString("c"),
emp[index].annualBonus);

你的问题的答案是你正在使用标签,假设它们会为你填补空间,但他们不会。您需要使用

的高级功能
  

string.Format或string.Pad

可在此处找到完整答案:Formatting a C# string with identical spacing in between values