未知昵称 2018-06-13 02:20 采纳率: 66.7%
浏览 2108
已采纳

C#treeview不同节点触发不同的右键菜单

  private void treeView1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)//判断你点的是不是右键
            {
                Point ClickPoint = new Point(e.X, e.Y);
                TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint);
                if (CurrentNode != null && true == CurrentNode.Checked)//判断你点的是不是一个节点
                if (CurrentNode != null)
                {
                   switch (CurrentNode.Name)//根据不同节点显示不同的右键菜单,当然你可以让它显示一样的菜单
                    {
                        case "":
                            CurrentNode.ContextMenuStrip = contextMenuStrip1;
                            break;

                        default:
                            break;
                    }
                    treeView1.SelectedNode = CurrentNode;//选中这个节点
                }
            }
        }

如上所示,所有的节点右键菜单都是一样的,我把代码改成如下所示的,好像右键菜单不显示了?不应该是名字叫ImplementationDataTypes显示右键菜单吗?
图片说明

  switch (CurrentNode.Name)//根据不同节点显示不同的右键菜单,当然你可以让它显示一样的菜单

                        case "ImplementationDataTypes":
                            CurrentNode.ContextMenuStrip = contextMenuStrip1;
                            break;

                        default:
                            break;
  • 写回答

6条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2018-06-13 03:03
    关注
            if (CurrentNode != null)
                {
                   switch (CurrentNode.Text)//根据不同节点显示不同的右键菜单,当然你可以让它显示一样的菜单
                    {
                        case "xxxx1":
                            contextMenuStrip1.Items[0].Visible = false;
                            break;
                                                        case "xxxx2":
                            contextMenuStrip1.Items[1].Visible = false;
                            break;
                                                        case "xxxx3":
                            contextMenuStrip1.Items[2].Visible = false;
                            break;
    
                        default:
                            break;
                                                        //放最后
                                                        CurrentNode.ContextMenuStrip = contextMenuStrip1;
                    }
                    treeView1.SelectedNode = CurrentNode;//选中这个节点
                }
    

    这样你是否更直观点?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程
  • ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
  • ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
  • ¥15 Python pandas
  • ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
  • ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
  • ¥15 云环境云开发云函数对接微信商户中的分账功能
  • ¥15 空间转录组CRAD遇到问题