您的位置:首页 > 其它

反射-利用泛型把枚举绑定到listControl

2011-10-09 09:56 363 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
EnumManager<LeftMenu>.SetListControl(comboBox1);
EnumManager<Permission>.SetListControl(listBox1);
}
public enum LeftMenu
{
基础数据管理 = 100,
日程管理 = 101,
听众管理 = 102,
黑名单管理 = 103,
公告管理 =104,
系统公告=105,
消息管理=106,
我的消息=107,
今日日程=108,
短信管理=110,
来电业务管理 = 200,
来电操作 = 201,
信息管理 = 202,
工作流程管理 = 300,
信息审核 = 301,
信息播出 = 302,
我的工作=303,
系统设置管理 = 400,
账号管理 = 401,
角色管理 = 402,
权限管理 = 403,
菜单管理 = 404,
个人信息管理 = 405,
登录日志管理 = 407,
错误日志管理 = 408,
菜单功能配置=409,
数据字典管理 = 500,
路况相关设置 = 501,
新闻相关设置 = 502,
咨询相关设置 = 503,
审核不通过原因 = 504,
加入黑名单原因 = 505,
解除黑名单原因 = 506,
审核相关设置 = 507,
关键字管理 = 508,
前缀设置 = 509,
知识库=600,
知识库查询=601,
知识库管理=602
}

public enum Permission
{
添加 = 10001,
修改=10002,
删除=10003,
列表查看=10004,
详细查看=10005,
审核=10006,
播出=10007,
加入黑名单=10008,
解除黑名单=10009,
修改资料=10010,
修改密码=10011,
信息处理历史查看=10012,
启用禁用账号=10013,
发布=10014,
预览=10015,
附件上传=10016,
附件下载=10017,
回复 = 10018,
密码重置=10019,
发送短信=10020
}

}

public static class EnumManager<TEnum>
{
private static DataTable GetDataTable()
{
Type enumType=typeof(TEnum);
FieldInfo[] enumField=enumType.GetFields();
DataTable dt=new DataTable();
dt.Columns.Add("Name",Type.GetType("System.String"));
dt.Columns.Add("Value",Type.GetType("System.Int32"));

foreach(FieldInfo field in enumField)
{
if(!field.IsSpecialName)
{
DataRow row=dt.NewRow();
row["Name"]=field.Name;
row["Value"]=Convert.ToInt32( field.GetRawConstantValue());
//row["Value"]=(int)Enum.Parse(enumType,field.Name);
dt.Rows.Add(row);
}
}
return dt;
}

public static void SetListControl(ListControl list)
{
list.DataSource=GetDataTable();
list.DisplayMember="Name";
list.ValueMember="Value";
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: