ListBox kontrol, 'Index was out of range' når DataSource ændres
Hejjeg har et lille program hvor jeg benytter ListBox kontroller.
DataSource'en til kontrollerne er en ArrayList.
I programet skal man kunne fjerne items fra listerne.
Jeg har en knap der fjerne det valgt element i ListBox'en fra min ArrayList og derefter giver det som DataSource til ListBox'en.
Mit problem er når jeg fjerne et element fra listen(det sidste), og derefter klikke det (nye) sidste element får jeg en fejl
"Index was out of range".
Nedenfor er koden til min knap og til ListBox'ens MouseDown evet
----------------oOo----------------
private void button2_Click(object sender, System.EventArgs e)
{
int ii = a.Count;
if (this.listBox1.SelectedIndex == -1)
{
MessageBox.Show("Select an item in the listbox first before do the operation.");
return;
}
for (int i = 0; i < ii; i++)
{
if (a[i].ToString() == this.listBox1.SelectedItem.ToString())
{
a.RemoveAt(i);
break;
}
}
ArrayList t = new ArrayList();
this.listBox1.DataSource = t;
this.listBox1.DataSource = a;
}
private void listBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (this.listBox1.SelectedIndex == -1)
{
return;
}
MessageBox.Show(this.listBox1.SelectedItem.ToString());
}
----------------oOo----------------
Jeg har nu forsøgt i en dags tid og er ved at være lidt træt af det :-)