Example #1
0
 void SetNodeCheckedByRightRuler(UserAndRight.User u)
 {
     this.treeView2.AfterCheck -= treeView2_AfterCheck;
     this.Cursor = Cursors.WaitCursor;
     foreach (TreeNode node in treeView2.Nodes)
     {
         if (u.IsSupper)
         {
             node.Checked = true;
             SetNodeChildCheckedByRightRuler(node, true);
         }
         else
         {
             UserAndRight.RightRuler r = u.Ruler.FindRight(node.Name, true) as UserAndRight.RightRuler;
             if (r != null)
             {
                 node.Checked = r.RightState == UserAndRight.RightState.完全 ? true : false;
                 if (node.Checked)
                 {
                     SetParentNodeChecked(node);
                 }
                 SetNodeChildCheckedByRightRuler(node, u.Ruler);
             }
             else
             {
                 node.Checked = false;
                 SetNodeChildCheckedByRightRuler(node, u.Ruler);
             }
         }
     }
     this.treeView2.AfterCheck += new TreeViewEventHandler(treeView2_AfterCheck);
     this.Cursor = Cursors.Default;
 }
Example #2
0
 void SetNodeChildCheckedByRightRuler(TreeNode node, UserAndRight.RightRuler r)
 {
     foreach (TreeNode childNode in node.Nodes)
     {
         UserAndRight.RightRuler right = r.FindRight(childNode.Name, true) as UserAndRight.RightRuler;
         if (right != null)
         {
             childNode.Checked = right.RightState == UserAndRight.RightState.完全 ? true : false;
             SetNodeChildCheckedByRightRuler(childNode, r);
             if (childNode.Checked)
             {
                 SetParentNodeChecked(childNode);
             }
         }
         else
         {
             childNode.Checked = false;
             SetNodeChildCheckedByRightRuler(childNode, r);
         }
     }
 }
Example #3
0
        void treeView2_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode node = treeView1.SelectedNode;

            if (node != null)
            {
                UserAndRight.RightRuler ruler = new UserAndRight.RightRuler();
                if (node.FullPath.IndexOf("用户\\") == 0)
                {
                    ruler = (node.Tag as UserAndRight.User).Ruler;
                }
                else
                {
                    return;
                }


                string id = (e.Node.Tag as UserAndRight.Right).ID;
                UserAndRight.RightRuler r = ruler.FindRight(id, true);
                if (r != null)
                {
                    r.RightState = (e.Node.Checked ? UserAndRight.RightState.完全 : UserAndRight.RightState.禁止);
                    if (e.Node.Checked)
                    {
                        this.treeView2.AfterCheck -= treeView2_AfterCheck;
                        SetParentNodeChecked(e.Node);
                        this.treeView2.AfterCheck += new TreeViewEventHandler(treeView2_AfterCheck);
                    }
                    else if ((node.Tag as UserAndRight.User).IsSupper)
                    {
                        (node.Tag as UserAndRight.User).IsSupper = false;
                    }
                    Changed();
                }
            }
        }