C# 文本框中的字符串显示不正确

C# 文本框中的字符串显示不正确,c#,winforms,C#,Winforms,我想用空格将字符串扩展到固定长度。 现在的问题是文本框中的文本显示错误。 如果我在控制台中输出相同的文本,则是正确的。 我做错了什么 machineData += String.Format("{0,-50} : {1,-50}\r\n", AddSpacesAndSpecialCharactersToName(item), GetSpecificDataOfSelectedMachine(item)); Console.WriteLine(String.F

我想用空格将字符串扩展到固定长度。 现在的问题是文本框中的文本显示错误。 如果我在控制台中输出相同的文本,则是正确的。 我做错了什么

machineData += String.Format("{0,-50} : {1,-50}\r\n", 
   AddSpacesAndSpecialCharactersToName(item), 
   GetSpecificDataOfSelectedMachine(item));

Console.WriteLine(String.Format("{0,-50} : {1,-50}\r\n", 
  AddSpacesAndSpecialCharactersToName(item), 
  GetSpecificDataOfSelectedMachine(item)));
应该是这样的:

Text         : Value
LongerText   : Value
Sm           : Value
但在文本框中,它看起来像:

Text     : Value
LongerText     : Value
Sm  : Value
是因为文本框吗?
我已经尝试将文本写入标签,但也存在同样的问题。

那么您的问题是为什么
文本框中的空格不对齐文本?你必须使用它才能工作。将
文本框
字体更改为
控制台使用的字体(请参阅)。更好的解决方案是在布局中解决这个问题:您可以在左侧使用标题控件,然后在右侧使用垂直对齐的控件来显示值。谢谢,它可以工作。另一个选项是使用RichTextBox,定义表示固定位置(数组of
int
)并设置
RichTextBox.WordWrap=false;RichTextBox.AcceptsTab=true。这允许使用独立于文本字符宽度的选项卡(
\t
)分隔非等距字体。当然,您需要测量字符串的最大长度(以像素为单位,使用
TextRenderer.MeasureText
),并将选项卡设置为每列中最大字符串长度的>值。