winform工程:
我有一个listbox1,内容已经绑定, 现在我想单击一个按钮, 将listbox1里的内容添加到listbox2里,代码如下:
int mailcount=this.listBox2 .Items.Count;
String[] a=new String[mailcount];
for(int i =0;i<mailcount;i++)
{
   a[i]=this.listBox2.Items [i] .ToString () ;
   this.listBox3 .Items .Add (a[i]);
}
可是执行后,在我的listbox2里显示的却是"System.Data.DataRowView" ; 并不是其真实的字符串;请问我的代码错在哪?

解决方案 »

  1.   

    根本就不需要用a[]作为中间数据,代码改为for(int i =0;i<this.listBox2 .Items.Count;;i++)
    {
       this.listBox3 .Items .Add (listBox2.Items [i]);
    }
      

  2.   

    更改的代码如下:
    for(int i=0;i<listBox1.Items.Count;i++)
    {
        listBox2.Items.Add(listBox2.Items[i]);
    }
      

  3.   

    private void Form1_Load(object sender, System.EventArgs e)
    {
    for(int i=0;i<10;i++)
    {
    this.listBox1.Items.Add(i);
    }

    } private void button1_Click(object sender, System.EventArgs e)
    {
    this.listBox2.Items.Clear();
    //全部选取
    int count = this.listBox1.Items.Count;
    string[] strs = new string[count];
    for(int i=0;i<count;i++)
    {
    strs[i] = this.listBox1.Items[i].ToString();
    //全选
    this.listBox2.Items.Add(strs[i]);

    }
    //单选
    //this.listBox2.Items.Add(this.listBox1.SelectedItem.ToString());
    }
      

  4.   

    foreach(string X in listBox2 .Items)
        this.listBox3.Items.Add(X);
      

  5.   

    谢谢楼上的同志们!
    但是
    我的Listbox是通过DataSet绑定的,所以当我用 listBox1.Items[i].ToString()取相应索引的数据时,得到的并不是listBOX里相应的Item,而是指向了dataset里的DATAROWVIEW,所以,我取不到值;
    如果不是通过dataset绑定的话,用楼上同志们的方法是可以取出来的,但现在我是绑定了dataset的!
    所以,大家有解决的办法吗?
      

  6.   

    代码如下:
    private void Form1_Load(object sender, System.EventArgs e)
            {
                SqlConnection cn=new SqlConnection(@"server=jackwang;database=mydata;user id=sa;pwd=");
                SqlDataAdapter sda=new SqlDataAdapter("select * from student",cn);
                DataTable dt=new DataTable();
                sda.Fill(dt);
                this.listBox1.DataSource=dt;
                this.listBox1.DisplayMember="姓名";
            }        private void button1_Click(object sender, System.EventArgs e)
            {
                this.listBox2.DataSource=this.listBox1.DataSource;
                this.listBox2.DisplayMember=this.listBox1.DisplayMember;
            }
      

  7.   

    谢谢楼上的大力相助, 但我真实的目的是取得listbox1的item后(是个ID), 然后通过这个ID从另外一张关联的表中取到这个ID对应的项.
    怪我开始没有说清楚~~~~~~~~
    但是这句话是个思路,"将第一个列表中的数据源再绑到第二个列表框中!",我想想
      

  8.   

    谢谢kfc0093(jack),这么迟了还在线帮我,还有其他兄弟,问题已经解决,给分!