程序中有一个TreeView
            TreeNode rootNode = treeView1.Nodes.Add("ROOT");
            TreeNode L2Node = rootNode.Nodes.Add("AAA");
            TreeNode L3Node = L2Node .Nodes.Add("A1");
             L3Node = L2Node .Nodes.Add("A2");
             L3Node = L2Node .Nodes.Add("A3");
             L3Node = L2Node .Nodes.Add("A4");
            L2Node = rootNode.Nodes.Add("BBB");
             L3Node = L2Node .Nodes.Add("B1");
             L3Node = L2Node .Nodes.Add("B2");
想在用户右键点击节点时弹出菜单,如果在空白处点则没有反应
快捷菜单有 "增加" "修改" "删除" 这些内容,但如果是点根节点则想让"删除"菜单项为灰
请问这两个问题该如何解决

解决方案 »

  1.   

    我在treeview的MouseDown中生成并显示快截菜单,但不知道如何在菜单处理函数中得到结点信息
    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
                    Point p = new Point();
                    p.X = e.X;
                    p.Y = e.Y;
                    TreeNode temp = this.treeView1.GetNodeAt(p);
                    if (temp != null)
                    {
                        Point ClickPoint = new Point(e.X, e.Y);   
                        Point ScreenPoint = treeView1.PointToScreen(ClickPoint); 
                        Point FormPoint = this.PointToClient(ScreenPoint);
                        ContextMenuStrip m_strip1 = new ContextMenuStrip();
                        m_strip1.Items.Add("TEST");
                        //为快捷菜单项添加CLICK事件处理
                        m_strip1.Items[0].Click +=    new   EventHandler(Option1_Click);   
                        //显示菜单
                        m_strip1.Show(this,FormPoint);
                    }
                }   
    }
            //事件处理函数
            private void Option1_Click(object sender, EventArgs e)
            {
                //请问这里如何得到节点的信息,比如节点的TEXT TAG的值???
            }