C# 使用C中未知字符串长度的\t格式化#
这可能是一个困难的问题,也可能是一个愚蠢的简单问题。不管怎样,请耐心听我说,因为我对C# 使用C中未知字符串长度的\t格式化#,c#,format,C#,Format,这可能是一个困难的问题,也可能是一个愚蠢的简单问题。不管怎样,请耐心听我说,因为我对C.还很陌生 我一直在构建一个表单,里面有一个列表框,还有其他一些东西,一切都很顺利。事情变得奇怪的地方在于用信息填充所述框 到目前为止,我填写此列表框的逻辑是: foreach (var value in userList) { listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" +
C.
还很陌生
我一直在构建一个表单
,里面有一个列表框
,还有其他一些东西,一切都很顺利。事情变得奇怪的地方在于用信息填充所述框
到目前为止,我填写此列表框的逻辑是:
foreach (var value in userList)
{
listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" + value.typeName);
}
(不要介意“
和\t
之间的奇怪
!)
问题是,如果某些值太长(不是像value.length中的“long”,而是像width中的“long”),这看起来很奇怪
为了更好地解释这一点,我拍了一张截图(请原谅政府式的审查):
如您所见,问题在于在这种上下文中使用\t
时,文本的格式似乎不正确
是否有一种方法可以将此文本整齐地格式化为我在这里想要的3列样式?在不知道每个值中变量的长度的情况下,我的意思是?您应该尝试:
这将输出:
cat feline
poodle canine
我想你要找的是
String.PadRight和String.PadLeft方法应该使用String.PadRight(X)而不是使用制表符
其中X是字段的最大长度。您需要确保X值大于数据的最大长度,或者将数据剪裁到最大长度以确保列对齐。它完全按照您的要求执行:)@Thomas 100%正确。我只是不知道如何表达我实际希望它执行的操作;)W你为什么不在UI中使用某种网格控件?如果你需要多列,请使用ListView
或DataGridView
@Thomas对不起,速度太慢了,是的,非常慢!谢谢!只在SO代码块中工作,他使用的是可变间距字体。当然,当填充小于短语时仍然不起作用宽度,他现在的问题,他可能会使用ListBox.customtaboffset属性。
cat feline
poodle canine