treeview 选中,移动,重命名

来源:互联网 发布:java 面向服务架构 编辑:程序博客网 时间:2024/06/04 18:07

     private void ChangeChild(TreeNode node)
        {            
            
             if (node.Nodes.Count != 0)
             {
                 foreach (TreeNode item in node.Nodes)
                 {
                     item.Checked = node.Checked;
                     ChangeChild(item);
                 }
             }
        }
        private void ChangeParent(TreeNode node)
        {
            if (node.Parent != null)
            {                //兄弟节点被选中的个数              
                int brotherNodeCheckedCount = 0;
                //遍历该节点的兄弟节点             
                foreach (TreeNode tn in node.Parent.Nodes)
                {
                    if (tn.Checked == true)
                        brotherNodeCheckedCount++;
                }                //兄弟节点全没选,其父节点也不选            
                if (brotherNodeCheckedCount == 0)
                {
                    node.Parent.Checked = false;
                    ChangeParent(node.Parent);
                }                //兄弟节点只要有一个被选,其父节点也被选         
                if (brotherNodeCheckedCount >= 1)
                {
                    node.Parent.Checked = true;
                    ChangeParent(node.Parent);
                }
            }
        }

  private void TreeMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
              TreeViewHitTestInfo info = this.TreeMenu.HitTest(e.Location);
            if (info != null && info.Location == TreeViewHitTestLocations.StateImage)
            {
                TreeNode node = e.Node;
                if (node != null)
                {
                    ChangeChild(node);
                    ChangeParent(node);
                }
            }     

   } 

//移动

  TreeNode tempNode,  currentNode; 
        int orderby; 

        private void ToolStripMenuItemUp_Click(object sender, EventArgs e)
        {
             currentNode = TreeMenu.SelectedNode; 
         if (currentNode == null) 
         { 
             return; 
         } 
         else 
         { 
            
             tempNode = currentNode.PrevNode;
             if (tempNode == null) 
             { 
                 return; 
             } 
             else 
             {
                 SystemMenuCustomInfo pre = (SystemMenuCustomInfo)tempNode.Tag;
                 SystemMenuCustomInfo current = (SystemMenuCustomInfo)currentNode.Tag;
                 orderby = pre.OrderBy;
                 pre.OrderBy = current.OrderBy;
                 current.OrderBy = orderby;
                 int rst = ManagerController.GetISystemMenuCustomManager().Update(pre);
                 rst = ManagerController.GetISystemMenuCustomManager().Update(current);
                 MnuTreeController.InitMenuTree(this.TreeMenu, "customSelector");
             } 
         } 
        }

        private void ToolStripMenuItemDown_Click(object sender, EventArgs e)
        {
             currentNode = TreeMenu.SelectedNode; 
          if (currentNode == null) 
          { 
              return; 
          } 
          else 
          {

              tempNode = currentNode.NextNode; 
              if (tempNode == null) 
              { 
                  return; 
              } 
              else 
              { 
                  SystemMenuCustomInfo next = (SystemMenuCustomInfo)tempNode.Tag;
                  SystemMenuCustomInfo current = (SystemMenuCustomInfo)currentNode.Tag;
                  orderby = next.OrderBy;
                  next.OrderBy = current.OrderBy;
                  current.OrderBy = orderby;
                  int rst = ManagerController.GetISystemMenuCustomManager().Update(next);
                  rst = ManagerController.GetISystemMenuCustomManager().Update(current);
                  MnuTreeController.InitMenuTree(this.TreeMenu, "customSelector");
              } 
          } 
        }

//重命名

        private void ToolStripMenuItemRename_Click(object sender, EventArgs e)
        {
            TreeMenu.LabelEdit = true;
            TreeNode current = TreeMenu.SelectedNode;
            if (current!=null)
            {
                preSystemMenuCustom = (SystemMenuCustomInfo)current.Tag;
                current.BeginEdit();
            }
        }
        private SystemMenuCustomInfo preSystemMenuCustom;
        private void TreeMenu_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {          

        if (e.Label == null)
            { return; }
            preSystemMenuCustom.MenuName = e.Label;

TreeMenu.LabelEdit = false;
            int rst = ManagerController.GetISystemMenuCustomManager().Update(preSystemMenuCustom);
           
        }

 /////////TreeView节点初始选中

TreeNodeChecked(this.TreeMenu.Nodes[0], preInfoUserList[i].Right);

 public static void TreeNodeChecked(TreeNode RootNode, string Right)
        {
            if (RootNode.Nodes.Count > 0)
            {
                for (int i = 0; i < RootNode.Nodes.Count; i++)
                {
                    if (((SystemMenuInfo)RootNode.Nodes[i].Tag).MenuCode == Right)
                    {
                        RootNode.Nodes[i].Checked=true;
                    }
                    if (RootNode.Nodes[i].Nodes.Count > 0)
                    {
                        TreeNodeChecked(RootNode.Nodes[i], Right);
                    }
                }
            }
        }

// 获得选中的节点

 public void GetNodeRole(TreeNode treeNode)
        {
            if (treeNode.Checked)
            {
                SystemMenuInfo info = (SystemMenuInfo)treeNode.Tag;
                SystemRolePrivilegeInfo infoRole = new SystemRolePrivilegeInfo();
                if (info != null&&info.MenuCode!="")
                {
                    infoRole.RoleCode = _RoleCode;
                    infoRole.Right = info.MenuCode;
                    ReflectionHelper.FillObjectCreateInfo(infoRole);
                    infoRoleList.Add(infoRole);
                }
            }
            foreach (TreeNode tn in treeNode.Nodes)
            {
                GetNodeRole(tn);
            }

        }

 

0 0
原创粉丝点击