您的位置:首页 > 其它

根据用户权限设置主窗体菜单

2013-12-10 10:24 417 查看
 #region  根据用户权限设置主窗体菜单

        /// <summary>

        /// 根据用户权限设置菜单是否可用.

        /// </summary>

        /// <param name="MenuS">MenuStrip控件</param>

        /// <param name="UName">当前登录用户名</param>

        public void MainPope(MenuStrip MenuS, String UName)

        {

            string Str = "";

            string MenuName = "";

            DataSet DSet = MyDataClass.getDataSet("select ID from tb_Login where Name='" + UName + "'", "tb_Login");    //获取当前登录用户的信息

            string UID = Convert.ToString(DSet.Tables[0].Rows[0][0]);   //获取当前用户编号

            DSet = MyDataClass.getDataSet("select ID,PopeName,Pope from tb_UserPope where ID='" + UID + "'", "tb_UserPope");    //获取当前用户的权限信息

            bool bo = false;

            for (int k = 0; k < DSet.Tables[0].Rows.Count; k++) //遍历当前用户的权限名称

            {

                Str = Convert.ToString(DSet.Tables[0].Rows[k][1]);  //获取权限名称

                if (Convert.ToInt32(DSet.Tables[0].Rows[k][2]) == 1)    //判断权限是否可用

                    bo = true;

                else

                    bo = false;

                for (int i = 0; i < MenuS.Items.Count; i++) //遍历菜单栏中的一级菜单项

                {

                    ToolStripDropDownItem newmenu = (ToolStripDropDownItem)MenuS.Items[i];  //记录当前菜单项下的所有信息

                    if (newmenu.HasDropDownItems && newmenu.DropDownItems.Count > 0)    //如果当前菜单项有子级菜单项

                        for (int j = 0; j < newmenu.DropDownItems.Count; j++)    //遍历二级菜单项

                        {

                            MenuName = newmenu.DropDownItems[j].Name;   //获取当前菜单项的名称

                            if (MenuName.IndexOf(Str) > -1) //如果包含权限名称

                                newmenu.DropDownItems[j].Enabled = bo;  //根据权限设置可用状态

                            ToolStripDropDownItem newmenu2 = (ToolStripDropDownItem)newmenu.DropDownItems[j];   //记录当前菜单项的所有信息

                            if (newmenu2.HasDropDownItems && newmenu2.DropDownItems.Count > 0)  //如果当前菜单项有子级菜单项

                                for (int p = 0; p < newmenu2.DropDownItems.Count; p++)  //遍历三级菜单项

                                {

                                    MenuName = newmenu2.DropDownItems[p].Name;  //获取当前菜单项的名称

                                    if (MenuName.IndexOf(Str) > -1) //如果包含权限名称

                                        newmenu2.DropDownItems[p].Enabled = bo;  //根据权限设置可用状态

                                }

                        }

                }

            }

        }

        #endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐