【发布时间】:2020-11-19 17:49:22
【问题描述】:
我正在使用 String.Format() 来格式化一些文本信息,它与 msdn 中记录的“Console.WriteLine()”完美配合。
我的代码是这样的:
StringBuilder strBuilder = new StringBuilder();
strBuilder.AppendLine("Summary Information:");
strBuilder.AppendFormat("{0,-10}{1,-8}{2,-10}{3,-30}{4,-7}\n", "Header1", "Header2", "Header3", "Header4", "Header5");
strBuilder.AppendFormat("{0,-10}{1,-8}{2,-10}{3,-30}{4,-7}\n\n", "A", "1", "Y", "Long Information", "13");
string result = strBuilder.ToString();
Console.WriteLine(result);
控制台结果如下所示。
但是,当我尝试在 MessageBox 上显示它时,列正在移动。不知何故,这些空间被吞噬了。
MessageBox.Show(result, "MBox Test");
也可以,因为我对 .Net 的“MessageBox”类不是很了解。它有很多限制。
所以我决定实现一个自定义表单来显示此消息。我尝试过使用 Label 和 RichTextBox。但不幸的是结果和MessageBox一模一样。
我很困惑。为什么.Net自带的控件不支持String.Format()的对齐方式。有什么办法可以处理这种情况吗?
【问题讨论】:
-
在了解到这是因为字体类型之后,我制作了一个适用于 html 的消息框。所以问题解决了。现在我可以更灵活地格式化消息框了。
标签: c# messagebox string.format