2010-05-31 53 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块中。