在treeView控件上添加右键菜单,想要实现以下功能:
一、在没有选中treeView中任何一项时右键会弹出一个菜单,
二、在选中treeView中某一项时右键会弹出一个不同的菜单。
新手求教,请提供思路,谢谢。

解决方案 »

  1.   

    自己通过代码去绑定弹出菜单吧,
    在treeview中的keydown事件去判断,要弹出的是那个菜单
      

  2.   

    自己通过代码去绑定弹出菜单吧,
    在treeview中的keydown事件去判断,要弹出的是那个菜单
      

  3.   

    但是自定义菜单不就要定义一个Form,如何把这个Form定义得和右键菜单一样没有边框呢?
      

  4.   

    但是自定义菜单不就要定义一个Form,如何把这个Form定义得和右键菜单一样没有边框呢?
      

  5.   

    如果不定义Form的话,那么contextMenuStrip控件是通过什么方法让它弹出的呢?
      

  6.   


            private void treeView1_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {
                    ContextMenuStrip cms = new ContextMenuStrip();
                    if (treeView1.SelectedNode == null)
                    {
                        ToolStripMenuItem newItem = new ToolStripMenuItem();
                        newItem.Text = "菜单1";
                        cms.Items.Add(newItem);
                    }
                    else
                    {
                        ToolStripMenuItem newItem = new ToolStripMenuItem();
                        newItem.Text = "菜单2";
                        cms.Items.Add(newItem);
                    }
                    treeView1.ContextMenuStrip = cms;
                }
            }用contextMenuStrip才是正确的,上面的例子没有选中时弹出“菜单1”,有选中时弹出“菜单2”如果你的意思是判断有没有在选中节点上点击右键的话,用下面这个判断:
    if (this.treeView1.SelectedNode == treeView1.GetNodeAt(e.Location))