簡體   English   中英

treenode的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM