在ASP.NET(WEBFORM)里,有个DropDownList,可以像下面这样添里面的选项,非常的方面DropDownList1.Items.Add(new ListItem(标题,值));而在Winfom里,没有对应的ListItem类,ComboBox对应的Add方法传的是一个object类型的值,一般情况下可以传字符串,string类型,但这样用起来有时就感觉很不方便,因为我们不仅有一个显示内容,还有另一个对应的值。这时可以自定义一个类,像下面这样: public class ComboBoxItem
{
string m_Title;
int m_Value;
/// <summary>
/// Combox显示的内容
/// </summary>
public string Title
{
get { return m_Title; }
set { m_Title = value; }
}
/// <summary>
/// 对应的值
/// </summary>
public int Value
{
get { return m_Value; }
set { m_Value = value; }
}
/// <summary>
/// 重写ToString方法,否则ComboX里的显示不正常
/// </summary>
/// <returns></returns>
public override string ToString()
{
return m_Title;
} /// <summary>
/// 定意构造函数
/// </summary>
/// <param name="strTitle"></param>
/// <param name="value"></param>
public ComboBoxItem(string strTitle, int value)
{
m_Title = strTitle;
m_Value = value;
}当然你的Value也可以跟据需要定义成其它的类型,比如object在向ComboBox添加内容时,可以这样:combo1.Items.Add(new ComboBoxItem(标题,值));可以像下面这样,来获取用户所选择的值:((ComboBoxItem)combo1.SelectedItem).Value出自:http://www.soft000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c6e80e4fd000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c
{
string m_Title;
int m_Value;
/// <summary>
/// Combox显示的内容
/// </summary>
public string Title
{
get { return m_Title; }
set { m_Title = value; }
}
/// <summary>
/// 对应的值
/// </summary>
public int Value
{
get { return m_Value; }
set { m_Value = value; }
}
/// <summary>
/// 重写ToString方法,否则ComboX里的显示不正常
/// </summary>
/// <returns></returns>
public override string ToString()
{
return m_Title;
} /// <summary>
/// 定意构造函数
/// </summary>
/// <param name="strTitle"></param>
/// <param name="value"></param>
public ComboBoxItem(string strTitle, int value)
{
m_Title = strTitle;
m_Value = value;
}当然你的Value也可以跟据需要定义成其它的类型,比如object在向ComboBox添加内容时,可以这样:combo1.Items.Add(new ComboBoxItem(标题,值));可以像下面这样,来获取用户所选择的值:((ComboBoxItem)combo1.SelectedItem).Value出自:http://www.soft000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c6e80e4fd000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c
DisplayMember是显示出来的数据
ValueMember是隐藏的数据比如DisplayMember显示 "编号" ValueMember值是 1
当取ComboBox.text的时候是得的数据是 "编号"
用ComboBox.value得的值就是 1
comboBox1.Items.Add(new KeyValuePair<string, string>("aaa", "1"));
comboBox1.Items.Add(new KeyValuePair<string, string>("bbb", "2"));
comboBox1.Items.Add(new KeyValuePair<string, string>("ccc", "3"));comboBox1.DisplayMember = "key";
comboBox1.ValueMember = "value";//获取值
MessageBox.Show(((KeyValuePair<string, string>)comboBox1.SelectedItem).Key + "," + ((KeyValuePair<string, string>)comboBox1.SelectedItem).Value);