我有一個窗體上的TreeView控件。我正在動態地向它添加新的TreeNodes,並且在添加它們之前對它們調用Expand()。這會導致其IsExpanded屬性爲true。然而,在將其添加到TreeView或TreeView上的任何節點後,立即將其IsExpanded屬性設置爲false,並且不會展開任何節點。任何人都可以想出一個想法,爲什麼會這樣?我甚至在添加任何節點之前嘗試在TreeView上調用ExpandAll。這是否有方法被稱爲添加樹節點到TreeView或現有一個孩子後?將TreeNode添加到.NET TreeView後,它的IsExpanded屬性變爲false,爲什麼?
回答
看來,如果當一個TreeNode被添加到一個TreeView,它沒有分配給它的任何孩子,該節點的IsExpanded屬性設置爲false。因此,使用下面的代碼:
私人無效Form1_Load的(對象發件人, EventArgs的)
{ TreeNode node = new TreeNode(); TreeNode cn1 = new TreeNode(); TreeNode cn2 = new TreeNode(); node.Text = "Hello"; node.Nodes.Add(cn1); node.Nodes.Add(cn2); node.Expand(); treeView1.Nodes.Add(node); bool expanded = node.IsExpanded; }
我這個樣本中發現,如果有樹節點添加爲孩子,然後IsExpanded財產它被添加到TreeView之前和之後保持真實。因此,請確保添加的節點具有子節點,或者TreeNodeCollection.Add()會將其更改爲摺疊狀態。不知道爲什麼在這一塊,但希望它是有幫助的。
至於ExpandAll(),你一定得把它所有的孩子已被添加之後。我不知道,但我會假設它只是遞歸地遍歷每個節點的節點並調用「expand」,所以如果要擴展的節點尚未添加,它將被此函數忽略。
你應該叫ExpandAll 後的TreeView是構建。
不擴展所有的孩子?當我創建它們時,我有一些IsExpanded爲false,有些則爲true。 ExpandAll()會尊重這個嗎?如果是這樣,它會被誤稱。如果不是,那麼我認爲這不能解決我的問題。 – 2010-03-06 13:26:01
最近,我也遇到這個問題也一樣,你可以看到下面的線程,可能對你的幫助。 原因是treeview還沒有渲染。你可以在渲染之後做TreeNode.Expand()然後就可以了。
treenode.IsExpanded still false after excute treenode.expand
- 1. 將屬性添加到TreeNode
- 2. 如何將屬性添加到asp.net的TreeNode Treeview控件
- 3. 爲什麼winforms TreeView treenode在節點中說'treenode:'?
- 4. 爲什麼.NET XML將xlmns屬性附加到我添加到文檔中的XmlElements?我可以阻止它嗎?
- 5. 爲什麼要將單引號添加到對象的屬性
- 6. 爲什麼在添加[MessageContract]屬性後收到InvalidOperationException?
- 7. UseCompatibleTextRendering屬性時,它被設置爲false
- 8. 找不到爲什麼collection爲bool屬性返回false?
- 9. 爲什麼object.define屬性不會將屬性添加到對象中?
- 10. 將標籤添加到treenode
- 11. 爲什麼FormsAuthentication的requireSSL屬性的默認值爲false!
- 12. 爲什麼將html屬性設置爲false會將其視爲意外標記?
- 13. 將屬性添加到URL爲Summernote
- 14. 將新屬性添加到.Net對象
- 15. 將動態屬性添加到.NET類
- 16. 將屬性聲明爲false的正確方法是什麼?
- 17. 爲什麼向類屬性添加<Browsable(False)>屬性會阻止FilterItemOnProperty()正確檢索屬性的值?
- 18. 將項添加到列表中,然後將它們變爲ListItems
- 19. 爲什麼在將對象附加到它後數組爲空?
- 20. IIS7:爲什麼NT Authority \ IUSR身份的isAnonymous屬性爲false?
- 21. 爲什麼數組未添加到PHP類的屬性?
- 22. 爲什麼IEnumerable <T>在將元素添加到集合後變爲空?
- 23. SimpleXML:添加「xmlns:wp」屬性只會添加「wp」,爲什麼?
- 24. .Net將「__doPostBack」添加到javaScript onClick事件...爲什麼?
- 25. JavaFX TreeView爲null爲什麼?
- 26. 爲什麼AppDomain.CurrentDomain.IsHomogenous爲false
- 27. 爲什麼你不能在python中添加屬性到對象?
- 28. 爲什麼ASP.Net添加一個 「邊界」 屬性到ASP:圖像
- 29. wpf TreeView - 如何在IsExpanded屬性更改上調用函數
- 30. 爲什麼它允許將bgColor添加到<head>和<table>標記作爲屬性
謝謝你,它解釋了很多。然而這很煩人。我試圖反序列化,我救了,我有那些之前他們的孩子反序列化集裝箱節點樹視圖,這意味着以後我就回去了第二遍再擴大他們加入自己的孩子後? 你還說,我仍然需要調用ExpandAll()?這是爲什麼?不會ExpandAll()展開樹中的每個節點?這似乎無法單獨擴展您想要擴展的那些節點。 – 2010-03-06 13:50:01