[转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
2008-12-06 18:51
891 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using Kimbanx.SecurityDiskSystem.FactoryTools.MenuItem;
using Program.BLL;
using Kimbanx.SecurityDiskSystem.FactoryTools.DBDAL;
using Program.Model;
using System.Threading;
using System.Diagnostics;
namespace Kimbanx.SecurityDiskSystem.FactoryTools
<Menus>
<MenuItem>
<Text>资料管理</Text>
<ItemID>1000</ItemID>
<ParentItemID>0</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>1</Level>
<ImageName>01.bmp</ImageName>
</MenuItem>
<MenuItem>
<Text>产品管理</Text>
<ItemID>1100</ItemID>
<ParentItemID>0</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>1</Level>
<ImageName>16x16_ico_pdf.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>进书管理</Text>
<ItemID>100001</ItemID>
<ParentItemID>1000</ParentItemID>
<FormName>frmInputBooks</FormName>
<IsModule>0</IsModule>
<Level>2</Level>
<ImageName>crest16x16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>买卖管理</Text>
<ItemID>100002</ItemID>
<ParentItemID>1000</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>2</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>作业管理</Text>
<ItemID>110001</ItemID>
<ParentItemID>1100</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>2</Level>
<ImageName>ico_info_16x16_mask.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>买书管理</Text>
<ItemID>10000201</ItemID>
<ParentItemID>100002</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>3</Level>
<ImageName>ico_tmn_16x16.jpg</ImageName>
</MenuItem>
<MenuItem>
<Text>买sss管理</Text>
<ItemID>1000020101</ItemID>
<ParentItemID>10000201</ParentItemID>
<FormName>frmBuyBook</FormName>
<IsModule>0</IsModule>
<Level>4</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>dsafasdf</Text>
<ItemID>11000101</ItemID>
<ParentItemID>110001</ParentItemID>
<FormName>frmBuyBook</FormName>
<IsModule>0</IsModule>
<Level>3</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
</Menus>
下面来说明一下XML文件。
Text:为显示在窗体上的文字,
ItemID:为菜单的ID,
ParentItemID:为此菜单的父菜单ID如果是顶级菜单则为0
FormName:为单击菜单所要显示的窗体类名如果是还有下级菜单的则不要写。
IsModule:是否还有子菜单1有,0没有
Level:菜单所在的层数。目前还没用到。
ImageName:菜单前的图标为16x16的图片文件,这个我这里没有用到
在这里还可以根据自己的需要加其它的属性,也可以写成以数据库的方式。
这是我目前用到的功能。我会继续发表我做这个小软件的心得体会。希望对大家有所帮助。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using Kimbanx.SecurityDiskSystem.FactoryTools.MenuItem;
using Program.BLL;
using Kimbanx.SecurityDiskSystem.FactoryTools.DBDAL;
using Program.Model;
using System.Threading;
using System.Diagnostics;
namespace Kimbanx.SecurityDiskSystem.FactoryTools
<Menus>
<MenuItem>
<Text>资料管理</Text>
<ItemID>1000</ItemID>
<ParentItemID>0</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>1</Level>
<ImageName>01.bmp</ImageName>
</MenuItem>
<MenuItem>
<Text>产品管理</Text>
<ItemID>1100</ItemID>
<ParentItemID>0</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>1</Level>
<ImageName>16x16_ico_pdf.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>进书管理</Text>
<ItemID>100001</ItemID>
<ParentItemID>1000</ParentItemID>
<FormName>frmInputBooks</FormName>
<IsModule>0</IsModule>
<Level>2</Level>
<ImageName>crest16x16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>买卖管理</Text>
<ItemID>100002</ItemID>
<ParentItemID>1000</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>2</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>作业管理</Text>
<ItemID>110001</ItemID>
<ParentItemID>1100</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>2</Level>
<ImageName>ico_info_16x16_mask.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>买书管理</Text>
<ItemID>10000201</ItemID>
<ParentItemID>100002</ParentItemID>
<FormName></FormName>
<IsModule>1</IsModule>
<Level>3</Level>
<ImageName>ico_tmn_16x16.jpg</ImageName>
</MenuItem>
<MenuItem>
<Text>买sss管理</Text>
<ItemID>1000020101</ItemID>
<ParentItemID>10000201</ParentItemID>
<FormName>frmBuyBook</FormName>
<IsModule>0</IsModule>
<Level>4</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
<MenuItem>
<Text>dsafasdf</Text>
<ItemID>11000101</ItemID>
<ParentItemID>110001</ParentItemID>
<FormName>frmBuyBook</FormName>
<IsModule>0</IsModule>
<Level>3</Level>
<ImageName>ico16-16.gif</ImageName>
</MenuItem>
</Menus>
下面来说明一下XML文件。
Text:为显示在窗体上的文字,
ItemID:为菜单的ID,
ParentItemID:为此菜单的父菜单ID如果是顶级菜单则为0
FormName:为单击菜单所要显示的窗体类名如果是还有下级菜单的则不要写。
IsModule:是否还有子菜单1有,0没有
Level:菜单所在的层数。目前还没用到。
ImageName:菜单前的图标为16x16的图片文件,这个我这里没有用到
在这里还可以根据自己的需要加其它的属性,也可以写成以数据库的方式。
这是我目前用到的功能。我会继续发表我做这个小软件的心得体会。希望对大家有所帮助。
相关文章推荐
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, pa
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值【转】
- [转载内容]C# win程序中主窗体菜单的权限控制
- C# 中反射获取某类的子类和根据类型名动态创建对象(转载)
- C# 中反射获取某类的子类和根据类型名动态创建对象(转载)
- asp.net 2.0下根据权限动态控制菜单、动态配置导航信息
- 使用反射实现根据名称动态创建窗体的几种方法
- 探究.net对象的创建,质疑《再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较》
- C/S模式根据权限基于反射机制实现动态生成菜单
- 存储里根据权限或其他内容来控制单价显示与否(惊险经历)
- asp.net 2.0下根据权限动态控制菜单、动态配置导航信息 .
- [转载]利用反射动态创建对象
- 【转载】反射之实例创建ConstructorInfo.Invoke 对比 Activator.CreateInstance
- 使用反射实现根据名称动态创建窗体的几种方法。
- 题目:编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建 public class Mobile { String br
- extjs4 动态加载树菜单和相应的按钮是否显示 ,到对权限的控制粒度细化到按钮
- C++实现 反射 机制( 即根据 类名 创建 类实例)Create C++ Object Dynamically
- C++实现反射(根据类名动态创建对象)
- 一。对象管理第一次初始化(ObInitSystem) + 类型对象的创建(ObCreateObjectType)