String.Format()中的间距

时间:2013-09-20 12:05:21

标签: c# wpf

我希望字符串中单词之间的固定间距与数据网格中的单词类似。

我试过了:

string item = String.Format("{0,-9}{1,-42}{2,-24}{3,0}", ++i, itemName, itemQuantity, totalItemPrice.ToString("#,##0.00") + System.Environment.NewLine);

但由于itemName长度是可变的,因此itemQuantity和totalItemPrice不会保持其位置并向前推进。

随后将字符串分配给RichTextBox。

2 个答案:

答案 0 :(得分:3)

如果使用等宽(固定间距)字体,可以使用string.Format()来排序。

但是,除非您只显示数字(即使是按比例字体也具有相同的宽度),否则您将无法使用string.Format()对比例字体进行排序。

由于您使用的是RTF,如果您需要使用比例字体,则可以使用表格。

请点击此处获取更多信息:Using Tables in RTF

但最简单的解决方案就是使用等宽字体,如果可以的话。

答案 1 :(得分:1)

你可以这样做:

我刚刚修改了你使用这些值的方式,我可以将数据显示为数据网格。

 string itemName = "phone";

 int itemQuantity = 5, totalItemPrice=50;

 string item = String.Format("{0,-2}{1,-10}{2,-5}{3,-5}", ++i, itemName, itemQuantity, totalItemPrice.ToString("#,##0.00")+System.Environment.NewLine);