我有多个长度相同的字符串,但它们似乎需要不同数量的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";
答案 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