是否可以(通过使用stock c#TreeView)获得多行树节点?
此外,是否可以将控制字符添加到TreeNode的文本,例如'\ t'?通过向TreeNode添加列也可以实现相同的效果。这有可能吗?
答案 0 :(得分:2)
我不相信使用WinForms是可行的,至少在没有绘制自己的节点的情况下。你可能能够使用“所有者绘制的”treenode在WinForms中实现这一点,但我不知道。
但WPF本身支持这一点。
答案 1 :(得分:1)
从您的问题来看,您是否使用ASP.NET或WinForms并不是很清楚。如果你在ASP.NET中,你可以尝试使用PRE标签来格式化......?
你所看到的Ra-Ajax TreeView可以看到here的一个例子,它可以有任意套数量的HTML和/或甚至是其中的控件,这大多优于ASP中内置的TreeView 。净。 (免责声明;我使用Ra-Ajax)
这使您可以根据需要格式化TreeView的内容。虽然如果你完全狂暴,你仍然冒着因太多空间或类似的东西而制造“展示文物”的风险......
答案 2 :(得分:0)
无法在TreeNode中有效使用制表符。 无论如何,我有一个解决方法:
字体“Consolas”每个字母的空间相等,因此您可以轻松地使用空格。 GetEmptyInfoByIndex方法返回一个自定义长度的空格字符串,以填充间隙直到指定的长度。这里= 20。
mynode.NodeFont = new System.Drawing.Font("Consolas", 9,FontStyle.Regular);
string displaytext = String.Format(CultureInfo.InvariantCulture, "{0}{2} = {1}", mystringOfDifferentLenght, myresult, GetEmptyInfoByIndex(mystringOfDifferentLength, 20));
mynode.Text = displaytext;
rootnode.Nodes.Add(mynode);
private string GetEmptyInfoByIndex(string _string, int maxLength)
{
string retstr = string.Empty;
for (int i = 0; i < maxLength - _string.Length; i++)
{
retstr += " ";
}
return retstr;
}