欢迎来到天天文库
浏览记录
ID:14945945
大小:210.97 KB
页数:86页
时间:2018-07-31
《c treeview菜单,menustrip菜单递归动态生成例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、这是在权限系统中设计中常用到的两种菜单处理方式privateDataTableModuleTable;privatevoidFrmMain_Load(objectsender,EventArgse){tryIT{InitMenu();}catch{MenuTree.Nodes.Clear();}}//////初始化菜单///protectedvoidInitMenu(){DataSetds=newDataSet();ds=bll.GetModuleTypeList("");RGP.BLL.RGP_Modulesbll=
2、newRGP.BLL.RGP_Modules();ModuleTable=ds.Tables[0];//取得所有数据得到DataTable//加载TreeView菜单LoadNode(MenuTree.Nodes,"0");//加载MenuStrip菜单ToolStripMenuItemtopMenu=newToolStripMenuItem();LoadSubMenu(reftopMenu,0);}//////递归创建TreeView菜单(模块列表)//////子菜单3、>///子菜单上级IDprotectedvoidLoadNode(TreeNodeCollectionnode,stringMtID){DataViewdvList=newDataView(ModuleTable);dvList.RowFilter="ModuleTypeSuperiorID="+MtID;//过滤父节点TreeNodenodeTemp;foreach(DataRowViewdvindvList){nodeTemp=newTreeNode();nodeTemp.Tag=dv["Module4、TypeID"].ToString()+",0";nodeTemp.Text=dv["ModuleTypeName"].ToString();//节点名称node.Add(nodeTemp);//加入节点//nodeTemp.SelectAction=TreeNodeSelectAction.Expand;//nodeTemp.Expanded=false;this.LoadNode(nodeTemp.Nodes,nodeTemp.Tag.ToString().Split(',')[0]);//递归//增加子模块分类RGP.BLL.RGP_Modulesb5、ll=newRGP.BLL.RGP_Modules();DataSetModule=bll.GetModuleList("ModuleTypeID="+dv["ModuleTypeID"].ToString());inti=0;foreach(DataRowchild_drinModule.Tables[0].Rows){if((UserBox.GetUserTable().IsLimit==true6、7、(child_dr["ModuleDisabled"].ToString().ToLower()=="true"&&UserHandle.Validati8、onModule(int.Parse(child_dr["ModuleID"].ToString()),RGP_Tag.Browse)))&&child_dr["IsMenu"].ToString().ToLower()=="true"){TreeNodeChildNode=newTreeNode(child_dr["ModuleName"].ToString());ChildNode.Tag=child_dr["ModuleID"].ToString()+",1";ChildNode.Expand();nodeTemp.Nodes.Add(ChildNo9、de);i++;}}//删除不必要的模块分类节点。if(i==0){MenuTree.Nodes.Remove(nodeTemp);}}}//////递归创建MenuStrip菜单(模块列表)//////父菜单项///父菜单的IDprivatevoidLoadSubMenu(refToolStripMenuItemtopMenu,intMtID){DataViewdvList=newDataView(Mod10、uleTable);//过滤出当前父菜单下在所有子菜单数据(仅为下
3、>///子菜单上级IDprotectedvoidLoadNode(TreeNodeCollectionnode,stringMtID){DataViewdvList=newDataView(ModuleTable);dvList.RowFilter="ModuleTypeSuperiorID="+MtID;//过滤父节点TreeNodenodeTemp;foreach(DataRowViewdvindvList){nodeTemp=newTreeNode();nodeTemp.Tag=dv["Module
4、TypeID"].ToString()+",0";nodeTemp.Text=dv["ModuleTypeName"].ToString();//节点名称node.Add(nodeTemp);//加入节点//nodeTemp.SelectAction=TreeNodeSelectAction.Expand;//nodeTemp.Expanded=false;this.LoadNode(nodeTemp.Nodes,nodeTemp.Tag.ToString().Split(',')[0]);//递归//增加子模块分类RGP.BLL.RGP_Modulesb
5、ll=newRGP.BLL.RGP_Modules();DataSetModule=bll.GetModuleList("ModuleTypeID="+dv["ModuleTypeID"].ToString());inti=0;foreach(DataRowchild_drinModule.Tables[0].Rows){if((UserBox.GetUserTable().IsLimit==true
6、
7、(child_dr["ModuleDisabled"].ToString().ToLower()=="true"&&UserHandle.Validati
8、onModule(int.Parse(child_dr["ModuleID"].ToString()),RGP_Tag.Browse)))&&child_dr["IsMenu"].ToString().ToLower()=="true"){TreeNodeChildNode=newTreeNode(child_dr["ModuleName"].ToString());ChildNode.Tag=child_dr["ModuleID"].ToString()+",1";ChildNode.Expand();nodeTemp.Nodes.Add(ChildNo
9、de);i++;}}//删除不必要的模块分类节点。if(i==0){MenuTree.Nodes.Remove(nodeTemp);}}}//////递归创建MenuStrip菜单(模块列表)//////父菜单项///父菜单的IDprivatevoidLoadSubMenu(refToolStripMenuItemtopMenu,intMtID){DataViewdvList=newDataView(Mod
10、uleTable);//过滤出当前父菜单下在所有子菜单数据(仅为下
此文档下载收益归作者所有