c#(winform)中ComboBox和ListBox添加项 键值对 形式

本文介绍了如何在C# WinForm应用中使用键值对形式来填充ComboBox和ListBox。通过自定义ListItem类,将键值对作为数据源,设置DisplayMember和ValueMember属性,实现显示文本和获取值的功能。此外,还提供了加载和获取ComboBox数据的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载于:http://blog.youkuaiyun.com/fcsh820/article/details/3867053

感谢原作者分享这么好的文章。

 

WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用,

因为大家日常应用通常是键/值对的形式去绑定它的.

那么用键值对的形式如何做?

因为Combox的每一个项的值是一个object, 实际上就是一个键/值对.
我用的是下面这个类的实例作为它的一个项:

    /// <summary>
    
/// ComboBox的项
    
/// </summary>
    class ListItem : System.Object
    {
        
private string _Value = string.Empty;
        
private string _Text = string.Empty;

        
/// <summary>
        
/// 
        
/// </summary>
        public string Value
        {
            
get { return this._Value; }

           set { this._Value=value; }
        }
        
/// <summary>
        
/// 显示的文本
        
/// </summary>
        public string Text
        {
            
get { return this._Text; }

           set { this._Text=value; }
        }

        
public ListItem(string value, string text)
        {
            
this._Value = value;
            
this._Text = text;
        }
        
public override string ToString()
        {
            
return this._Text;
        }

    }

 

 通过这个类就可以定义ComboBox的值了, 首先我们定义一个ListItem的清单作为ComboBox的数据源:

            List<ListItem> items = new List<ListItem>();
            items.Add(new ListItem("0""Item_0_Text"));
            items.Add(new ListItem("1""Item_1_Text"));
            items.Add(new ListItem("2""Item_2_Text"));
            items.Add(new ListItem("3""Item_3_Text"));
            items.Add(new ListItem("4""Item_4_Text"));
            items.Add(new ListItem("5""Item_5_Text"));

 

 然后进行相应的设置:

            //将数据源的属性与ComboBox的属性对应
            drpTest.DisplayMember = "Text";        //显示
            drpTest.ValueMember = "Value";        //

 

然后进就可以进行绑定了:

            drpTest.DataSource = items;        //绑定数据

 

绑定数据之后, 就可以对其进行默认选择项的设置, 取值等操作:

            drpTest.SelectedValue = "4";        //设定选择项

            //取得当前选择的项
            ListItem selectedItem = (ListItem)drpTest.SelectedItem;
            string value = selectedItem.Value;    //
            string text = selectedItem.Text;    //显示的文字

 

 

////////////////////////////////////////////////////////////////////////////////////////////

根据原作者的文章。我想到了这个方法:

        private void LoadComboboxYear()

        {

            List<KeyValuePair<stringint>> listItem = new List<KeyValuePair<stringint>>();

            listItem.Add(new KeyValuePair<stringint>("2011年", 2011));

            listItem.Add(new KeyValuePair<stringint>("2012年", 2012));

            comboBox3.DataSource = listItem;

            comboBox3.DisplayMember = "Key";

            comboBox3.ValueMember = "Value";

            comboBox3.SelectedIndex = 0;

        }

取数据:

        private void button1_Click(object sender, EventArgs e)

        {

            KeyValuePair<stringint> keyValue = (KeyValuePair<string,int>)comboBox3.SelectedItem;

            MessageBox.Show("key:" + keyValue.Key + ",value:" + keyValue.Value);

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值