Тест, созданный в приложении Windows со следующим кодом:
public void Test1()
{
List<List<String>> list = new List<List<string>>() {
new List<String>() { "XYZ", "ABC","100" },
new List<String>() { "X", "ABC", "100"},
};
string text = "", a = "", b = "", c = "";
for (int i = 0; i < list.Count; i++)
{
a = list[i][0];
b = list[i][1];
c = list[i][2];
text += String.Format("{0, -8} {1,-4} {2,8}{3}", a, b, c, Environment.NewLine);
}
MessageBox.Show(text);
}
делает то, что вы сказали, но после проверки с помощью консольного приложения со следующим кодом:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Test1();
Console.ReadKey();
}
public static void Test1()
{
List<List<String>> list = new List<List<string>>() {
new List<String>() { "XYZ", "ABC","100" },
new List<String>() { "X", "ABC", "100"},
};
string text = "", a = "", b = "", c = "";
for (int i = 0; i < list.Count; i++)
{
a = list[i][0];
b = list[i][1];
c = list[i][2];
text += String.Format("{0, -8} {1,-4} {2,8}{3}", a, b, c, Environment.NewLine);
}
Console.WriteLine(text);
}
}
}
Он делает то, что вы ожидаете.
Итак, тесты показывают, что если он делает то, что должен, но из-за отсутствия шрифта той же ширины в MessageBox
он не выстраивается должным образом. Но с другой стороны, с консольным приложением, использующим шрифты той же ширины, оно точно совпадает.