[英]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.