2010-05-31 48 views
0

我有一個問題,爲TreeView動態創建MenuItems:這裏是我使用的(簡化)代碼。關於Visual C#MenuItem:NullReference來自哪裏?

public class CTMProvider 
{ 
    private CTM myObject; 
    //internal CTMManager manager; 
    //internal string IEEEAddress; 
    //internal System.Net.Endpoint endpoint; 

    public CTMProvider() 
    { 
     myObject = new CTM(this); 
    } 

    void Disconnect(object sender, EventArgs ea) { 
     //Function disconnects a tcp link 
    } 
} 

public class CTM : System.Windows.Forms.TreeNode 
{ 
    public CTM(CTMProvider provider) 
    { 
     //this.provider = provider; 
     //this.manager = provider.manager; 
     //this.IEEEAddress = provider.IEEEAddress; 
     //this.endpoint = provider.state._conn.RemoteEndPoint; 
     this.Text = String.Format("CTM: {0} {0}", IEEEAddress, ((System.Net.IPEndPoint)endpoint).ToString()); 
     MenuItem meni = new MenuItem("Disconnect", new System.EventHandler(this.provider.Disconnect))); 
     this.ContextMenu.MenuItems.Add(meni); // <----- 
    } 
} 

該代碼總是會觸發一個NullReferenceException當我嘗試和我的菜單項添加到列表的MenuItems。 任何想法?

+1

stacktrace .....? – 2010-05-31 08:46:57

+1

請發佈*真實*代碼。上面的代碼不能編譯。你的簡化可以很好地掩蓋真正的問題。哦,並刪除'try' ...'catch',這是完全沒有必要的。 – 2010-05-31 08:47:00

+0

對不起,我試圖在那裏稍微簡化一下。 – Thomas 2010-06-01 04:28:13

回答

1

在Visual Studio中去 「調試 - >例外...」(或按Ctrl + Alt + E),並檢查下時拋出公共語言運行庫異常複選框。現在的例外情況將顯示在發生的確切位置,而不僅僅是在catch塊中。