使用填充格式化文本在 C# 中不对齐
Formatting text with padding does not line up in C#
我对编程还很陌生,我刚刚用 C# .NET 编写了一个简单的应用程序来检索有关系统驱动器的信息 space。该程序运行良好,但我正在努力格式化输出。
查看输出:
我正在尝试使用填充使文本在富文本框中以某种列格式排列,但输出没有排列,因为如果有多个驱动器,驱动器名称是不同的抛出填充的长度。即使盘符返回一个为 M: 另一个为 I: 字母大小的差异足以在填充时摆脱对齐。
我想知道是否有一种方法可以将每个字符串值强制为特定长度,以便均匀地应用填充,或者是否有更好的方法来格式化我的输出。预先感谢您抽出宝贵时间,如果有任何进一步的信息对您有帮助,请告诉我!
注意:其中一条评论问了一个重要的问题,关于这个问题是否指的是System.Windows.Forms.RichTextBox
(WinForms) or the 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
, but for more general information about padding strings, check out this MSDN article: Padding Strings in the .NET Framework
这是字符串格式化示例:
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] }
我对编程还很陌生,我刚刚用 C# .NET 编写了一个简单的应用程序来检索有关系统驱动器的信息 space。该程序运行良好,但我正在努力格式化输出。
查看输出:
我正在尝试使用填充使文本在富文本框中以某种列格式排列,但输出没有排列,因为如果有多个驱动器,驱动器名称是不同的抛出填充的长度。即使盘符返回一个为 M: 另一个为 I: 字母大小的差异足以在填充时摆脱对齐。
我想知道是否有一种方法可以将每个字符串值强制为特定长度,以便均匀地应用填充,或者是否有更好的方法来格式化我的输出。预先感谢您抽出宝贵时间,如果有任何进一步的信息对您有帮助,请告诉我!
注意:其中一条评论问了一个重要的问题,关于这个问题是否指的是System.Windows.Forms.RichTextBox
(WinForms) or the 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
, but for more general information about padding strings, check out this MSDN article: Padding Strings in the .NET Framework
这是字符串格式化示例:
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] }