我有一个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
中使用的不同节点有关,但我不知道如何正确对齐我的数据。
答案 0 :(得分:2)
似乎需要为TreeView设置等宽字体。
这是一个类似的问题,带有等宽字体(FontFamily.GenericMonospace
)的例子:
答案 1 :(得分:0)
这是.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));
此代码将确保每个参数占用的空间每次都相同。
答案 2 :(得分:0)
您可以使用其他控件来创建如下列:
在网络上可以找到许多样本控件:
答案 3 :(得分:0)
尝试将treeView的字体更改为使用
non-proportional font like "Courier" , "Consolas"