コード例 #1
0
 private void TV_MenuInfo_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     if (e.Button == MouseButtons.Right && TV_MenuInfo.SelectedNode != null)//判断你点的是不是右键
     {
         Point    ClickPoint  = new Point(e.X, e.Y);
         TreeNode CurrentNode = TV_MenuInfo.GetNodeAt(ClickPoint);
         if (CurrentNode != null)//判断你点的是不是一个节点
         {
             ContextMenuStrip formMenu = new ContextMenuStrip();
             TV_MenuInfo.ContextMenuStrip = formMenu;
             TV_MenuInfo.SelectedNode     = CurrentNode;//选中这个节点
             //TV_MenuInfo.SelectedNode.ForeColor =Color.Lime; ;//节点颜色设置
             ToolStripMenuItem[] formMenuItemList = new ToolStripMenuItem[5];
             formMenuItemList[0] = new ToolStripMenuItem("上移", null, new EventHandler(menuinfo_next));
             formMenuItemList[1] = new ToolStripMenuItem("下移", null, new EventHandler(menuinfonext));
             formMenuItemList[2] = new ToolStripMenuItem("修改", null, new EventHandler(TV_MenuInfo_Click)); //---修改的方法为添加
             formMenuItemList[3] = new ToolStripMenuItem("刷新", null, new EventHandler(InitMenu));          //---修改的方法为添加
             formMenuItemList[4] = new ToolStripMenuItem("删除", null, new EventHandler(btn_Delete_Click));
             formMenu.Items.AddRange(formMenuItemList);
             this.ContextMenuStrip = formMenu;
         }
     }
 }
コード例 #2
0
        private void TV_MenuInfo_DragDrop(object sender, DragEventArgs e)
        {
            TreeNode myNode = null;

            if (e.Data.GetDataPresent(typeof(TreeNode)))
            {
                myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
            }
            else
            {
                MessageBox.Show("错误操作!");
            }
            Position.X = e.X;
            Position.Y = e.Y;
            Position   = TV_MenuInfo.PointToClient(Position);
            TreeNode DropNode = this.TV_MenuInfo.GetNodeAt(Position);

            // 1.目标节点不是空。2.目标节点不是被拖拽接点的字节点。3.目标节点不是被拖拽节点本身
            if (DropNode != null && DropNode.Parent != myNode && DropNode != myNode)
            {
                TreeNode DragNode = myNode;
                // 将被拖拽节点从原来位置删除。
                myNode.Remove();
                // 在目标节点下增加被拖拽节点
                DropNode.Nodes.Add(DragNode);
                LinQBaseDao.Query("update MenuInfo set menu_otherid='" + Convert.ToInt32(DropNode.Tag) + "' where menu_id='" + Convert.ToInt32(myNode.Tag) + "'");
            }
            // 如果目标节点不存在,即拖拽的位置不存在节点,那么就将被拖拽节点放在根节点之下
            if (DropNode == null)
            {
                TreeNode DragNode = myNode;
                myNode.Remove();
                TV_MenuInfo.Nodes.Add(DragNode);
                LinQBaseDao.Query("update MenuInfo set menu_otherid=0 where menu_id='" + Convert.ToInt32(myNode.Tag) + "'");
            }
        }