将一个ARRAYLIST帮定到LISTBOX上listBox1.DataSource = arrayList1;由于ListBox不能自动更新数据源,所以要删除一个Item的话就必须arrayList1.RemoveAt(listBox1.SelectedIndex);
listBox1.DataSource = null;
listBox1.DataSource = arrayList1;如果删除arrayList1中的最后一项(如果不是最后一项的话就一切正常),当再次选择listBox1中的Item时,系统就会抱出如下错误未处理的“System.ArgumentOutOfRangeException”类型的异常出现在 mscorlib.dll 中。其他信息: 指定的参数已超出有效值的范围。请问是什么原因?如何解决?
listBox1.DataSource = null;
listBox1.DataSource = arrayList1;如果删除arrayList1中的最后一项(如果不是最后一项的话就一切正常),当再次选择listBox1中的Item时,系统就会抱出如下错误未处理的“System.ArgumentOutOfRangeException”类型的异常出现在 mscorlib.dll 中。其他信息: 指定的参数已超出有效值的范围。请问是什么原因?如何解决?
listBox1.DataSource = arrayList1;
listBox1.DataBind();
2楼的大哥,是写ASP.NET的吧,ListBox根本没有DataBind()这个方法。
用你这种办法重新绑定也可以啊
listBox1.DataSource = null;
listBox1.DataSource = arrayList1;
如果删除的是最后一个的话就需要先把ListBox的SelectedIndex值设成-1就OK了。int delIndex = listBox2.SelectedIndex;
if ( listBox2.SelectedIndex == listBox2.Items.Count - 1 )
listBox2.SelectedIndex = -1;
if ( delIndex >= 0 && delIndex < exc.Count )
((IList)exc).RemoveAt(delIndex);
listBox2.DataSource = null;
if ( exc.Count > 0 )
listBox2.DataSource = exc;
listBox1.DataSource = null;
后面再加一句
listBox1.Items.Clear();试试?