我做了两个ListBox,在第一个里面有一些字符串,想让它传到第二个ListBox中。可是出现了一些问题,我在传的时候,我一个个传好使。可是当我选择多个的时候就出现问题了,我第一个ListBox中的偶数字符串传不到下一个里面去。代码是下面的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {        }
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                if (listBox1.GetSelected(i))
                {
                    listBox2.Items.Add(listBox1.Items[i]);
                    listBox1.Items.Remove(listBox1.Items[i]);
                  
                }
                
            }
           
        }        private void button2_Click(object sender, EventArgs e)
        {            for (int i = 0; i < listBox1.Items.Count;i++)
            {
                listBox2.Items.Add(listBox1.Items[i]);
            }
            listBox1.Items.Clear();
        }        private void button3_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listBox2.Items.Count; i++)
            {                if (listBox2.GetSelected(i))
                {
                    listBox1.Items.Add(listBox2.Items[i]);
                    listBox2.Items.Remove(listBox2.Items[i]);
                }            }
           
        }        private void button4_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listBox2.Items.Count; i++)
            {
                listBox1.Items.Add(listBox2.Items[i]);
            }
            listBox2.Items.Clear();
        }       
    }
}例如:在第一个ListBox中有“你、我、他”三个字符串,我全选后,点第一个button只传过去“你、他”,“我”没有传过去,不知道是为什么,
请给小生解释。

解决方案 »

  1.   

     
     for (int i = 0; i  < listBox1.Items.Count; i++) 
                { 
                    if (listBox1.GetSelected(i)) 
                    { 
                        listBox2.Items.Add(listBox1.Items[i]); 
                        listBox1.Items.Remove(listBox1.Items[i]); //问题出在这句上,当你移除此项时listBox1.GetSelected与原所选择项的数目不同了
                       
                    } 
                     
                } 
      

  2.   


    int i=-1;
    while(listBox1.SelectedItems.Count >0)
    {
    i++;
    if(listBox1.GetSelected(i)) 
    {
    listBox2.Items.Add(listBox1.Items[i]);
    listBox1.Items.RemoveAt(i);
    i=-1;
    }
    }