string[] ls =ls_tmp.Split(',');
for(int i=0;i<ls.Length;i++)
{
    ls_sign = ls[i];
    this.ListBox1.Items[i].Text = ls_sign;
    this.ListBox1.Items.Add(ls_sign);
}报错:索引超出范围。必须为非负值并小于集合大小。参数名: index 
我是个新手,请大家帮帮忙~~~~

解决方案 »

  1.   

    this.ListBox1.Items[i].Text = ls_sign;
    这句拿掉
      

  2.   

    这个虽然是可以了,但是,不能达到我的目的了,我的目的想在ListBox1中一行显示数组中的一个记录,现在变成全部显示在一行上了,请指教~~~~
      

  3.   

    其实我的目的很简单,只要将一串字符分批显示在listbox中
      

  4.   

    lovefootball(蟑螂)说得不行吗?你有没有试?
    如果不行的话
    每次循环new 一个ListItem把对应的string赋给他的Text属性
    把它加到this.ListBox1.Items里面去
      

  5.   

    string[] ls =ls_tmp.Split(',');
    for(int i=0;i<ls.Length;i++)
    {
        ls_sign = ls[i];
        Listitem lts=new listitem();
        lts.text=ls_sign;
        this.ListBox1.Items.Add(lts);
    }
      

  6.   

    换成这样试试。
    this.ListBox1.Items.Item[i].Text = ls_sign;
      

  7.   

    对不起刚才我上面说的是错的。
    好象 this.ListBox1.Items[i].Text = ls_sign; 这句本身就是错的。根本就没有这样的用法。
      

  8.   

    to :devilove(晓) 
    this.ListBox1.Items.Item[i].Text = ls_sign;这样报错
      

  9.   

    我是这样做的
    openFileDialog1.ShowDialog();
                string path = openFileDialog1.FileName;
                string[] p = path.Split(@"\".ToCharArray());
                for (int i = 0; i < p.Length; i++)
    {
     listBox1.Items.Insert(i,p[i]);
                    listBox1.Items.Add(p[i]);
    }
    不知道是不是你想要的那种。。??
      

  10.   

    http://www.zyanswer.com/bbs
      

  11.   

    找到一点原因,string[] ls =ls_tmp.Split('*');这句把ls_tmp = ls_sqlhh.Replace("或","或*")变成*****或,就是说没有将"*"前的字符当作数组的一项插入到数组中去,不知道是不是这样的原因呢?