是否有可能(通過使用股票C#TreeView)有多行TreeNodes?帶格式化文本的c#TreeView節點例如標籤和新行
另外,是否可以將控制字符添加到TreeNode的文本,例如'\ t'?通過向TreeNode添加列也可以實現同樣的效果。這可能嗎?
是否有可能(通過使用股票C#TreeView)有多行TreeNodes?帶格式化文本的c#TreeView節點例如標籤和新行
另外,是否可以將控制字符添加到TreeNode的文本,例如'\ t'?通過向TreeNode添加列也可以實現同樣的效果。這可能嗎?
我不相信這是可能的使用WinForms,至少沒有繪製自己的節點。不過,我可能可以使用「自繪」的treenode在WinForms中完成此操作。
儘管這本來就是用WPF支持的。
從你的問題來看,你是否使用ASP.NET或WinForms並不是很清楚。如果你在ASP.NET中,你可以嘗試使用PRE標籤來格式化...?
這是什麼說Ra-Ajax TreeView,你可以看到一個here的例子可以有任何套利量的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;
}