是否有可能(通过使用股票 c# TreeView)拥有多行树节点?
此外,是否可以在 TreeNode 的文本中添加控制字符,例如 '\t'?同样的效果也可以通过向 TreeNode 添加列来实现。这可能吗?
我不相信使用 WinForms 是不可能的,至少在不绘制你自己的节点的情况下是不可能的。不过,我不知道,您也许可以在 WinForms 中使用“所有者绘制的”树节点来完成此操作。
不过,WPF 本身就支持这一点。
您的问题不是很清楚您是使用 ASP.NET 还是 WinForms。如果您在 ASP.NET 中,您可以尝试使用 PRE 标记来获取格式...?
也就是说,您可以在此处看到一个示例的 Ra-Ajax TreeView 可以在其中包含任何套利量的 HTML 和/或什至控件,这在很大程度上使其优于 ASP.NET 中的内置 TreeView。(免责声明;我与 Ra-Ajax 合作)
这使您可以完全按照您的意愿格式化 TreeView 的内容。虽然如果你完全发疯,你仍然冒着创建“显示伪影”的风险,因为空间太大或类似的东西......
不可能在 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;
}