0

我遵循了这个 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); 

当 line 用于打印时,字符串被连接在一起,所以 \t 不起作用。新行的 \n 确实有效。有谁知道我可以在不使用空格的情况下格式化字符串的任何方式。

结果是这样的

名称StateCountry

加长名称StateCountry

anotherNameAnotherStateAnotherCountry

我希望他们在哪里排列(比如在表格中),名称为一列,说明另一列和国家,然后是第三个

任何建议都非常感谢

4

1 回答 1

1

好吧,制表符丢失有点奇怪,但另一方面,如果单个字符串元素(名称、状态等)的长度不同,制表符可能会出现问题。
您可以做的是使用string.Format()和使用固定的列宽。
为了获得漂亮的视觉输出,这将包括一个解析步骤来确定正确的列宽。
完成后,使用类似这样的东西来使用空格而不是制表符。

string line = string.Format("{0,-20}{1,-20}{2,-20}", "name", "state", "country");

编辑:看到你不想使用空格。
在这种情况下,您可能需要在打印算法本身中处理这个问题。您仍然可以使用选项卡分隔项目,然后对于每一行将其拆分到选项卡上,每行创建一个项目(列)数组。
对于每个项目,使用Graphics.DrawString()合适的 X 位置偏移量进行打印。

请参阅Graphics.DrawString的文档。

于 2011-05-15T21:28:17.520 回答