Advertisement

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)

还没有任何评论哟~