Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C中未知字符串长度的\t格式化#_C#_Format - Fatal编程技术网

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