InvalidArgument=Value of '1' is not valid for 'index'
发布时间
阅读量:
阅读量
本方案采用ListView来开发和实现点击 ListView 列表项以删除对应项的功能,在该功能中将触发 ItemSelectionChanged 事件。
代码如下:
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
listView1.Items.Remove(e.Item);
}
代码解释
发生异常:
System.ArgumentOutOfRangeException: InvalidArgument=Value of '1' is not valid for 'index'.
Parameter name: index
at System.Windows.Forms.ListView.ListViewItemCollection.get_Item(Int32 index)
at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
代码解释
编译成EXE运行时则会会出现这种错误提示:

由于单击第一项时触发了该事件,在删除后再次触发时发现变量e仍保持为原始值导致出现错误。可以通过在Click事件中执行此操作来避免这个问题。
private void listView1_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
listView1.Items.Remove(listView1.SelectedItems[0]);
}
}
代码解释
全部评论 (0)
还没有任何评论哟~
