使用填充格式化文本不会在C#中排队

时间:2015-10-28 20:49:04

标签: c# padding

我对编程很新,我只是在C#.NET中编写了一个简单的应用程序来检索有关系统驱动器空间的信息。该程序运行正常,但我正在努力格式化输出。

见输出:

Output Example

我尝试使用填充来使文本在富文本框中以列格式排列,但输出没有排列,因为如果有多个驱动器,则驱动器名称是不同长度抛出填充物。即使驱动器号回复为M:另一个作为I:字母大小的差异足以在填充时抛弃对齐。

我想知道是否有办法将每个字符串值强制为特定长度,以便均匀地应用填充,或者如果可能有更好的格式化输出的方法。提前感谢您的时间,如果有任何进一步的信息有用,请告诉我们!

2 个答案:

答案 0 :(得分:1)

注意:其中一条评论提出了一个重要问题,即问题是指System.Windows.Forms.RichTextBox (WinForms)还是System.Windows.Controls.RichTextBox (WPF)控件。此答案仅将 应用于RichTextBox的WinForms版本,因此如果您使用的是WPF,则不适用。

最重要的是,评论中提到的是,您需要使用Monospaced font

由于您声明使用的是RichTextBox,因此您需要知道如何将其设置为使用您选择的等宽字体。

为此,您可以使用RichTextBox.SelectionFont属性。

有关更一般的说明,请参阅此MSDN文章:Setting Font Attributes for the Windows Forms RichTextBox Control

设置RichTextBox.SelectionFont属性后,只有添加到控件之后的文本才会使用指定的字体。要将字体应用于现有文本(即填充RichTextBox,然后将字体更改为适当的等宽字体),请查看this answer,它会准确地告诉您怎么做。

完成后,仍然可以在每个字符串的末尾添加适当数量的空格,以便下一个数据出现在适当的位置。您可能正在使用String.PadRight,但有关填充字符串的更多常规信息,请查看此MSDN文章:Padding Strings in the .NET Framework

答案 1 :(得分:0)

这是字符串格式化示例:

string varOne = "Line One";
double varTwo = 15/100;

string output= String.Format("{0,-10} {1,5:P1}", varOne, varTwo);

//expected output is
//Line One   15 %

大括号中的格式属性是: {index [,alignment] [:formatString]}