CheckedListBox一样有DataSource、DisplayMember和ValueMember属性的,只是IntelliSense不能将其智能感知出来.
我们可以不理它的智能提示,自己写就可以了,只要写对了,编译也是不会报错的。
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace 利用选择控件实现权限设置
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.button1.Click += new EventHandler(button1_Click);
this.Load += new EventHandler(Form_Load);
}
private void Form_Load(object sender, EventArgs e)
{
List<MemberInfo> list = new List<MemberInfo>();
list.Add(new MemberInfo { mid= 1 , mname="员工信息" });
list.Add(new MemberInfo { mid = 2, mname = "往来业务" });
list.Add(new MemberInfo { mid = 3, mname = "采购信息" });
list.Add(new MemberInfo { mid = 4, mname = "销售信息" });
checkedListBox1.DataSource = list;
checkedListBox1.ValueMember = "mid";
checkedListBox1.DisplayMember = "mname";
}
private void button1_Click(object sender, EventArgs e)
{
string s = "您选择了:";
CheckedListBox.CheckedItemCollection ncc = checkedListBox1.CheckedItems;
foreach (object o in ncc)
{
MemberInfo m = (MemberInfo)o;
s += m.mname + ",";
}
MessageBox.Show(s);
}
}
class MemberInfo
{
public int mid
{
set;
get;
}
public string mname
{
set;
get;
}
}
}