我遵循了这个Wordpress教程,效果很好。我使用了列表视图,当我尝试格式化字符串时,它无法识别t
(但可以识别n
)。它也不会识别String.Format
等。
无论如何,我可以使用制表符或类似的东西格式化字符串吗?
干杯
编辑
for( i = 0; i < lstView.Items.Count;i++)
{
name = lstView.Items[i].Text;
state = lstView.Items[i].SubItems[1].Text;
country = lstView.Items[i].SubItems[2].Text;
line += name + "t" + state + "t" + country + "n";
}
StringReader reader = new StringReader(line);
当行用于打印时,字符串将连接在一起,因此 \t 不起作用。不过,新行的 确实有效。有谁知道我可以在不使用空格的情况下格式化字符串的任何方法。
结果是这样的
名称州国家
更长的名称州国家
另一个名字另一个州另一个国家
我希望它们排列在一列中(如在表格中)的位置,说明另一列和国家,然后是第三列
任何建议非常感谢
好吧,制表符丢失有点奇怪,但另一方面,如果单个字符串元素(名称、状态等)的长度不同,制表符可能会出现问题。
相反,您可以做的是使用string.Format()
并使用固定的列宽。
为了获得漂亮的视觉输出,这将包括一个解析步骤来确定正确的列宽。
完成此操作后,请使用类似这样的内容来使用空格而不是制表符。
string line = string.Format("{0,-20}{1,-20}{2,-20}", "name", "state", "country");
编辑:看到你不想使用空格。
在这种情况下,您可能需要在打印算法本身中处理此问题。您仍然可以使用制表符分隔项目,然后为每行将其拆分为选项卡,每行创建一个项目(列)数组。
对于每个项目,使用具有合适 X 位置偏移的Graphics.DrawString()
进行打印。
请参阅 Graphics.DrawString 的文档。