使用StringBuilder.AppendFormat格式化字符串无法按预期工作

时间:2012-06-09 17:02:23

标签: c# string format

我正在尝试使用StringBuilders AppendFormat方法创建一个包含数据的表。我希望第二和第三列中的文本保持对齐。

以下是我在谷歌上发现的一个例子: http://www.csharp-examples.net/align-string-with-spaces/

但是,使用与网站相同的代码我会得到不同的结果。第二列文本的位置取决于第一列文本的长度。我做错了吗?有更好的方法更适合这项任务吗?我希望从第一列的第一个字符到第二列的第一个字符有一定的空间(比如c ++中的setw()方法)

symbolTableToString.AppendFormat(" {0,-20}  {1,-10}  {2,-10} {3,-10}",dataNode.token, dataNode.tokenClass, dataNode.tokenMode, dataNode.alias).AppendLine();

我将每行放入一个文本框中,因为这是家庭作业的一部分,所以我无法使用不同的小部件。 enter image description here

2 个答案:

答案 0 :(得分:3)

您的文本框具有可变宽度字体,因此使用空格对齐列几乎不会很好。将文本框的Font属性更改为固定宽度字体,如Courier New。

答案 1 :(得分:0)

你的问题不是AppendFormat,它实际上似乎正常工作。将该文本框设置为使用等宽字体,例如Courier New或Consolas。