相同长度的字符串需要不同数量的选项卡来格式化

时间:2013-04-23 12:04:29

标签: c# string tabstop

我有多个长度相同的字符串,但它们似乎需要不同数量的tabstops来正确格式化。我不确定谷歌是什么,我还没有得到任何可以帮助我的结果,所以我在这里问。

除了创建多个控件之外,还有什么比这更好的解决方案,我不想要...

Look at Malzahar and Kassadin(相同长度,相同数量的tabstops,malzahar' s格式搞砸了) 目前的代码:

if (_counter.zCounter[i].Length <= 8)
{
    DataCollection += _counter.zCounter[i] + "\t\t↑" + _counter.zUpvotes[i] + "\t↓" + _counter.zDownvotes[i] + "\n";
}
else
    DataCollection += _counter.zCounter[i] + "\t↑" + _counter.zUpvotes[i] + "\t↓" + _counter.zDownvotes[i] + "\n";

2 个答案:

答案 0 :(得分:2)

字符串长度(字符数)仅与其宽度(像素数)松散相关。

您的方法仅适用于固定宽度字体(如Courier)。否则,您需要使用Measure()函数并计算特定字体的空格/制表符。乱。

更好地将GUI更改为2列。

答案 1 :(得分:0)

使用固定宽度(等宽字体)字体?即便如此,标签的位置取决于字符串的长度。

如果标签前面的字符串太长,则需要较少的标签。这就是你的问题所在:

str→   →   →str
strstr→→   →str
strstrstr→ →   →str

我建议您插入填充空格。您可以像这样计算空格数:

padding = (column - (index % column)) % column

其中column是要与下一个单词对齐的从零开始的列,而index是紧跟在前一个单词之后的字符的从零开始的索引。

str·········str
strstr······str
strstrstr···str