[英]How to clean up “TreeNode”s with same Text property in a TreeView?
[英]treenode's treeview property. How is this set?
目前,我正在設計自定義TreeNode,並提出了一個謎。
TreeNode的TreeView屬性是一個公共屬性,可用於獲取TreeNode所屬的TreeView。 我似乎找不到這是怎么設置的。
我假設它是由TreeNodeCollection設置的,當您調用它的Add方法之一時,盡管我找不到TreeView控件如何通過集合將對自身的引用傳遞給TreeNode。 是否使用了未記錄的方法或其他方法。 或者,也許我再次錯過了明顯的出血,我以這樣做而聞名。
感謝您的幫助Danny
TreeNode包含一個內部構造函數,如下所示:
internal TreeNode(TreeView treeView) : this()
{
this.treeView = treeView;
}
TreeView對象調用它來創建根節點:
root = new TreeNode(this);
當然,如果未設置treeView
成員,則將在您首次嘗試從屬性中檢索它時進行設置:
public TreeView TreeView {
get {
if (treeView == null)
treeView = FindTreeView();
return treeView;
}
}
根據源代碼,內部方法FindTreeView
用於遞歸獲取給定TreeNode
的父級。 您可以在這里查看源
public TreeView TreeView {
get {
if (treeView == null)
treeView = FindTreeView();
return treeView;
}
}
注意:上面的摘錄來自上面發布的源鏈接。
此外,正如羅伯特·哈維(Robert Harvey)在回答中解釋的那樣,也可以通過內部構造函數進行設置:
internal TreeNode(TreeView treeView) : this() {
this.treeView = treeView;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.