当涉及MessageBox时,String.Format()的对齐方式会有所不同 - c#

我正在使用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时,String.Format()的对齐方式会有所不同 - c#

但是,当我尝试在MessageBox上显示它时,列正在移动。不知何故,空间被吞没了。

 MessageBox.Show(result, "MBox Test");

当涉及MessageBox时,String.Format()的对齐方式会有所不同 - c#

这也没关系,因为我不太喜欢.Net的“ MessageBox”类。它有很多限制。

因此,我决定实现一个自定义表单来显示此消息。我已经尝试过使用Label和RichTextBox。但不幸的是,结果与MessageBox完全相同。

我很困惑。为什么.Net自己的控件不能支持String.Format()的对齐方式。有什么办法可以应对这种情况?

参考方案

String.Format(...)可以很好地工作,但是由于字体的原因,它不能与消息框中的表格对齐!

在您的控制台中,您使用固定宽度(等宽)字体,但是消息框使用一种具有动态宽度的字体。因此例如“ M”比“ i”或“”(空格)消耗更多的空间,这会使您的布局混乱。

作为you can't change the messagebox font,您必须使用支持自定义字体的任何类型的文本小部件来创建自己的框架,例如TextBox或仅是普通的Label

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…

将ajax的值存储到javascript变量中 - javascript

我有一个php文件,其中我从服务器获取数据。该php文件的输出是一个包含json格式数据的变量。PHP文件:<?php $dbHostName = "localhost"; $dbUserName = "venseld"; $dbUserPass = "wecuuu"; $dbName = &…