• 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]);
                }
            }
    



  • 相关阅读:
    生产环境之Nginx高可用方案
    MySQL主从同步配置
    SpringBoot整合MyBatisPlus配置动态数据源
    循环有序数组,查找值
    数组任意取三个数中乘积最大值
    多线程输出123以及有序输出1-75
    有序数组取中值
    RocketMQ原理及源码解析
    docker基础常用命令
    项目常用命令
  • 原文地址:https://www.cnblogs.com/huijiBreathe/p/3180669.html
Copyright © 2020-2023  润新知