代码改变世界

ComboBox数据操作

2011-11-24 15:55  Ref Tian  阅读(217)  评论(0编辑  收藏  举报
在取得combBox項目的值时遇到一些问题,现在将问题解决方法发布如下:
测试代码:
1.测试用类,主要用来想combBox中添加数据项
public class Vendor 
        { 
                 
                private int old; 
                private string name; 
                public string Name 
                { 
                        get 
                        { 
                                return name; 
                        } 
                        set    
                        { 
                                this.name = value; 
                        } 
                } 
                public int Old 
                { 
                        get { return old; } 
                        set { old = value; } 
                } 
                public Vendor(string na,int ol) 
                { 
                        name = na; 
                        old = ol; 
                } 
                public Vendor() 
                {} 
        }
添加数据的代码:(初始化时....)
            comboBox1.Items.Add(new Vendor("aaa",5));
            comboBox1.Items.Add(new Vendor("dddd", 66));
            comboBox1.DisplayMember = "Old";
            comboBox1.ValueMember = "Name";
其中DisplayMember设置显示的数据,下面那个是对应的值,也就是待会要取出来的值.
以下是显示的代码(将值显示出来)
var k = ((Vendor)comboBox1.SelectedItem).Name; 
                        MessageBox.Show(k.ToString());
直接selecteditem是一个object的对象,所以需要将它转化成Vendor然后才能取到name值,代码测试通过。。。有兴趣的试试!
2.模拟绑定数据库的
comboBox1.DataSource = null; 
                        ArrayList lst = new ArrayList(); 
                        lst.Add(new Vendor("aaaaaa", 1111111)); 
                        lst.Add(new Vendor("aa", 11)); 
                        lst.Add(new Vendor("aaaa", 11111)); 
                        lst.Add(new Vendor("aaaaa", 11111)); 
                        comboBox1.Items.Clear(); 
                        comboBox1.DataSource = lst; 
                        comboBox1.DisplayMember = "Name"; 
                        comboBox1.ValueMember = "Old";
以下是显示的代码:
 var k = (int)comboBox1.SelectedValue;    
 MessageBox.Show(k.ToString());

 

就这么多,网上好多问答的很模糊有不懂的再留言!