我正在尝试向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进行布局的结果。
答案 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