for(int i=0;i<this.listBox1.SelectedIndices.Count;i++)
{
MessageBox.Show(this.listBox1.Items[this.listBox1.SelectedIndices[i]].Text);
}

解决方案 »

  1.   

    用listBox1.SelectedItems来做,如下:for (int i=0; i<this.listBox1.SelectedItems.Count; i++)
    {
    System.Console.WriteLine(this.listBox1.SelectedItems[i]);
    }
      

  2.   

    或这样用:
    foreach ( int i in this.listBox1.SelectedIndices)
    {
    System.Console.WriteLine(this.listBox1.Items[i]);
    }
      

  3.   

    for(int i = 0; i < this.listBox1.SelectedItems.Count ; i++)
      MessageBox.Show(this.listBox1.SelectedItems[i].ToString());
      

  4.   

    按楼主的想法,我想这是最全适的啊,就用SelectedIndices来做,用foreach最简洁:foreach ( int i in this.listBox1.SelectedIndices)
    {
    System.Console.WriteLine(this.listBox1.Items[i]);
    }
      

  5.   

    你要的应该是这个方法吧:
    有英文耐心读一下
    // Display a list of selected indices.
    // The SelectedIndices property returns a SelectedIndexCollection
    // object. Use its CopyTo method to copy the items to 
    // an array, so you can bind the list to a ListBox control.
    int[] aIndices = new int[lstMultiSelect.SelectedIndices.Count];//lstMultiSelect为listbox
    lstMultiSelect.SelectedIndices.CopyTo(aIndices, 0);
    lstSelected.DataSource = aIndices;//lstSelected要显示的listbox