今天做程序时,使用了listbox对象,使用了datasource绑定,在删除listbox的选择对象时(全部选择)出现了问题,本来想按照SelectedItems属性按for进行倒循环删除,发现提示“超出索引”,估计是删除以后datasource关联的index变化所致。最后通过以下方法解决
int[] arr_Temp = new int[lb.SelectedItems.Count]; //lb为listbox对象
int pos = 0;
for (int i = 0; i < lb.SelectedIndices.Count; i++)
{
arr_Temp[pos] = lb.SelectedIndices[i]; //这里可以获取到所有选择的list项的index
pos++;
}
for (int i = arr_Temp.Length - 1; i >= 0; i--)
{
(lb.DataSource as DataTable).Rows.RemoveAt(arr_Temp[i]);
}
感觉实现方法比较啰嗦,不知道有更好的方法没
