2008-11-19 44 views

回答

2

我不相信這是可能的使用WinForms,至少沒有繪製自己的節點。不過,我可能可以使用「自繪」的treenode在WinForms中完成此操作。

儘管這本來就是用WPF支持的。

1

從你的問題來看,你是否使用ASP.NET或WinForms並不是很清楚。如果你在ASP.NET中,你可以嘗試使用PRE標籤來格式化...?

這是什麼說Ra-Ajax TreeView,你可以看到一個here的例子可以有任何套利量的HTML和/或甚至在它內的控件,主要使它優於ASP.NET中內置的TreeView。 (免責聲明;我與Ra-Ajax合作)

這使得您可以完全按照您的意願格式化TreeView的內容。雖然如果你完全瘋狂,你仍然冒着創建「顯示文物」的風險,因爲太多的空間或類似的東西...

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; 
    } 

Proof here!