如何对齐树视图中的列等文本?
How do I align text like columns in a treeview?
我有一个 TreeView,我想在其中很好地排列我的数据。
我这样格式化我的字符串:
string name = ItemName;
string current = ("Current: " + info.Current.ToString() + " " + identifier);
string maximum = ("Maximum: " + info.Max.ToString() + " " + identifier);
string minimum = ("Minimum: " + info.Min.ToString() + " " + identifier);
string output = string.Format("{0,-20}{1,-30}{2,-30}{3,-30}{4,-30}", name, current, maximum, minimum, average);
dataNode.Text = output;
当我将 output
写入控制台时,它会按照我想要的方式打印它,就像这样(值已关闭,但这无关紧要):
Load Current: 9,23 % Maximum: 33,33 % Minimum: 6,06 % Average: 0 %
Temperature Current: 40 °C Maximum: 49 °C Minimum: 38 °C Average: 0 °C
Clock Current: 1200 Mhz Maximum: 2800,09 Mhz Minimum: 1200 Mhz Average: 0 Mhz
etc..
但是当我将完全相同的字符串打印到 TreeView
时,它显示如下:
我按照 this 页面上的示例进行操作,但这对我不起作用。
我想这与我在 TreeView
中使用的不同节点有关,但我不知道如何正确对齐我的数据。
这是 .PadRight()
或 .PadLeft()
的完美情况。
string output =
string.Format("{0}{1}{2}{3}{4}",
name.PadRight(20),
current.PadRight(30),
maximum.PadRight(30),
minimum.PadRight(30),
average.PadRight(30));
这段代码会保证每个参数占用的space每次都是一样的。
您可以使用其他控件如何创建列,例如:
网上有许多示例控件:
您似乎需要为 TreeView 设置等宽字体。
这是一个类似的问题,其中包含等宽字体 (FontFamily.GenericMonospace
) 的示例:
C# .NET multiline TextBox with same-width characters
尝试将 treeView 的字体更改为使用
non-proportional font like "Courier" , "Consolas"
我有一个 TreeView,我想在其中很好地排列我的数据。
我这样格式化我的字符串:
string name = ItemName;
string current = ("Current: " + info.Current.ToString() + " " + identifier);
string maximum = ("Maximum: " + info.Max.ToString() + " " + identifier);
string minimum = ("Minimum: " + info.Min.ToString() + " " + identifier);
string output = string.Format("{0,-20}{1,-30}{2,-30}{3,-30}{4,-30}", name, current, maximum, minimum, average);
dataNode.Text = output;
当我将 output
写入控制台时,它会按照我想要的方式打印它,就像这样(值已关闭,但这无关紧要):
Load Current: 9,23 % Maximum: 33,33 % Minimum: 6,06 % Average: 0 %
Temperature Current: 40 °C Maximum: 49 °C Minimum: 38 °C Average: 0 °C
Clock Current: 1200 Mhz Maximum: 2800,09 Mhz Minimum: 1200 Mhz Average: 0 Mhz
etc..
但是当我将完全相同的字符串打印到 TreeView
时,它显示如下:
我按照 this 页面上的示例进行操作,但这对我不起作用。
我想这与我在 TreeView
中使用的不同节点有关,但我不知道如何正确对齐我的数据。
这是 .PadRight()
或 .PadLeft()
的完美情况。
string output =
string.Format("{0}{1}{2}{3}{4}",
name.PadRight(20),
current.PadRight(30),
maximum.PadRight(30),
minimum.PadRight(30),
average.PadRight(30));
这段代码会保证每个参数占用的space每次都是一样的。
您可以使用其他控件如何创建列,例如:
网上有许多示例控件:
您似乎需要为 TreeView 设置等宽字体。
这是一个类似的问题,其中包含等宽字体 (FontFamily.GenericMonospace
) 的示例:
C# .NET multiline TextBox with same-width characters
尝试将 treeView 的字体更改为使用
non-proportional font like "Courier" , "Consolas"