在ComboBox、ListBox、CheckedListBox控件中,Items属性的类型为ObjectCollection,而不是String,是因为ObjectCollection可以扩展。
比如新建一个自然人的类
/// <summary>
/// 【类】自然人
/// </summary>
public class Man
{
/// <summary>【属性】身份证号</summary>
public string ID;
/// <summary>【属性】姓名</summary>
public string Name;
/// <summary>
/// 【过程】新建
/// </summary>
/// <param name="IDvalue">身份证号值</param>
/// <param name="Namevalue">姓名值</param>
public Man (string IDvalue,string Namevalue)
{
ID = IDvalue;
Name = Namevalue;
}
/// <summary>
/// 【函数】转为文本
/// </summary>
/// <returns></returns>
public override string ToString()
{
return ID + "|" + Name;
}
}
其中ToString函数一定要重写,这样我们添加到控件时候就会显示为ToString的结果
private void button1_Click(object sender, EventArgs e)
{
checkedListBox1.Items.Add(new Man("123456123456123456", "张XX"));
}
点击button1会向CheckedListBix添加一个Man类,显示的Man的ToString结果
当我们选择checkedListbox中的项时,返回的时Man类,但需要转化一下类型,
private void CheckedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = ((Man)(checkedListBox1.SelectedItem)).ID;
textBox2.Text = ((Man)(checkedListBox1.SelectedItem)).Name;
}
这样就可以将复杂的类使用选择控件来使用了。