Vorrei realizzare una classica applicazione con 2 listbox e 4 pulsanti (>,>>,<,<<)
Nella prima listbox carico i dati da un dataset.
Cliccando > copio solo gli items selezionati nella seconda listbox
Cliccando >> copio tutti gli items nella seconda testbox
Cliccando << pulisco la seconda listbox

Il problema sorge con il pulsante < che dovrebbe togliere dalla seconda listbox
solo gli elementi selezionati. Ma non capisco come mai me ne toglie sempre qualcuno in meno.


Questo è il codice:

private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
Carica();
}

if (IsPostBack)
{
for (int i = 0; i < ListBox1.Items.Count; i++)
{
if (ListBox1.Items[i].Selected)
ListBox2.Items.Add(ListBox1.Items[i].Text);
}
}

bindData();
}


void Carica()
{
oleDbDataAdapter1.Fill(dataSet11);
Cache["AppData"] = dataSet11;
}


public void bindData()
{
oleDbDataAdapter1.Fill(dataSet11);
ListBox1.DataBind();
}



//Questo è il pulsante <

private void Button4_Click(object sender, System.EventArgs e)
{

for (int i = 0; i < ListBox2.Items.Count; i++)
{
if (ListBox2.Items[i].Selected)
ListBox2.Items.Remove(ListBox2.Items[i].Text);
}
}




Sicuramente esistono modi migliori di gestire il tutto,per cui se qualcuno
ha dei suggerimenti sono ben accetti.