string str1="3,4,2,5,6";
string str2="张三,李四,王二,马五,陈六";如何把str1,str2赋值给comboBox,str1是实际值,str2是显示值

解决方案 »

  1.   

    封装成一个表。然后绑上去。ValueMember属性。
    期待简单的。
      

  2.   

    同意用表绑定,DisplayMember 和ValueMember
      

  3.   

            Dim dt As New DataTable()
            Dim dc1 As New DataColumn("str1")
            Dim dc2 As New DataColumn("str2")        Dim dr As DataRow        dt.Columns.Add(dc1)
            dt.Columns.Add(dc2)
            dr = dt.NewRow
            dr(0) = 3
            dr(1) = "张三"
            dt.Rows.Add(dr)
            .
            .
            .
            dr = dt.NewRow
            dr(0) = 3
            dr(1) = "张三"
            dt.Rows.Add(dr)        ComboBox.DataSource = dt
            ComboBox.DisplayMember = "str1"
            ComboBox.ValueMember = "str2"
    换成C#,调试下就好了
      

  4.   

    晕,VB,看着就晕
    不过还是谢谢楼上有C#的就好咯
      

  5.   

    要能存储Value和Text两个值只能绑定到数据源
      

  6.   

                DataTable dt = new DataTable();
                dt.Columns.Add("value", Type.GetType("System.String"));
                dt.Columns.Add("text", Type.GetType("System.String"));
                //添加数据
                DataRow dr = dt.NewRow();
                dr.BeginEdit();
                dr["value"] = "3";
                dr["text"] = "张三";
                dr.EndEdit();
                dt.Rows.Add(dr);            ComboBox cmbbx = new ComboBox();
                cmbbx.DataSource = dt;
                cmbbx.DisplayMember = "text";//显示的值
                cmbbx.ValueMember = "value";//实际值
      

  7.   

    有点麻烦
    DataTable dt = new DataTable();
            public ComboBox()
            {
                InitializeComponent();
            }        private void ComboBox_Load(object sender, EventArgs e)
            {
                DataColumn dc1 = new DataColumn();
                dc1.ColumnName = "Id";
                dc1.DataType=typeof(int);
                dt.Columns.Add(dc1);            DataColumn dc2 = new DataColumn();
                dc2.ColumnName = "Name";
                dc2.DataType=typeof(string);
                dt.Columns.Add(dc2);            DataRow dr1 = dt.NewRow();
                DataRow dr2 = dt.NewRow();
                DataRow dr3 = dt.NewRow();
                DataRow dr4 = dt.NewRow();
                DataRow dr5 = dt.NewRow();
                dataRow(dr1,"张三",3);
                dataRow(dr2,"李四",4);
                dataRow(dr3, "王二",2);
                dataRow(dr4,"马五",5);
                dataRow(dr5,"陈六",6);
                //ds.Tables.Add(dt);            comboBox1.DataSource = dt;
                comboBox1.ValueMember = "Id";
                comboBox1.DisplayMember = "Name";
            }
            private void dataRow(DataRow dr,string name,int id)
            {
                dr[0] = id;
                dr[1] = name;
                dt.Rows.Add(dr);
            }
      

  8.   

    调用循环 给COMBOBOX赋值就可以  有的时候用笨方法还是很有效的
      

  9.   

    1.数据少并且固定就直接填进去
    2.多的话,就用数据库,或者xml等,支持楼上的同志们的方法。
      

  10.   

     string str1 = "3,4,2,5,6";
                string str2 = "张三,李四,王二,马五,陈六";
                string[] values = str1.Split(new char[] { ',' });
                string[] Display = str2.Split(new char[] { ',' });
                DataTable dt = new DataTable();
                dt.Columns.Add("Values", typeof(string));
                dt.Columns.Add("Display", typeof(string));
                //认为两个Array都是一样的长度.
                for (int i = 0; i < values.Length; i++)
                    dt.Rows.Add(values[i], Display[i]);
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "Display";
                comboBox1.ValueMember = "Values";