簡體   English   中英

你調用的對象是空的。 (C#)

[英]Object reference not set to an instance of an object. (C#)

如果此方法中的邏輯是從事件處理程序(如Button_Click )運行的,那么它可以正常工作,但是,當從下面的方法運行它時,我得到錯誤:

hostView.SelectedNode.Nodes.Add(newNode);

你調用的對象是空的。

這是我的代碼:

private void SetupHostTree()
{
    // Set internal host names
    using (var reader = File.OpenText("Configuration.ini"))
    {
        List<string> hostnames = ParseInternalHosts(reader).ToList();
        foreach (string s in hostnames)
        {
            TreeNode newNode = new TreeNode(s);
            hostView.SelectedNode.Nodes.Add(newNode);

            string title = s;
            TabPage myTabPage = new TabPage(title);
            myTabPage.Name = s;
            tabControl1.TabPages.Add(myTabPage);
        }
    }
}

也許沒有選定的節點:)

可能是因為hostView TreeView中當前未選擇任何節點。

文檔說當沒有當前選擇節點時, TreeView.SelectedNode屬性將返回null 因為你把它組合成一個表達式,整個表達式都失敗了,因為null對象上沒有Nodes集合!

試試這段代碼:

private void SetupHostTree()
{
    // Set internal host names
    using (var reader = File.OpenText("Configuration.ini"))
    {
        List<string> hostnames = ParseInternalHosts(reader).ToList();
        foreach (string s in hostnames)
        {
            // Ensure that a node is currently selected
            TreeNode selectedNode = hostView.SelectedNode;
            if (selectedNode != null)
            {
                TreeNode newNode = new TreeNode(s);
                selectedNode.Nodes.Add(newNode);
            }
            else
            {
                // maybe do nothing, or maybe add the new node to the root
            }

            string title = s;
            TabPage myTabPage = new TabPage(title);
            myTabPage.Name = s;
            tabControl1.TabPages.Add(myTabPage);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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