某一天写一个关于读取数据后显示在ListView中,点击ListView的某一列表头可以按此列进行排序的小程序,过程不难写,网上查一查基本都没问题。过程中我碰到两个问题,因为初学C#,问题都有点小白。
第一个就是,点击列表后触发排序。点击的事件是ColumnClick,作为一个小白,我找了许久才发现原来其隐藏在ListView的属性的小闪电里,原来小闪电就是列表的所有事件,呜呜。
第二个问题就是报错InvalidArgument=“1”的值对于“index”无效。事情是这样滴,我有一个读取数据的按钮,每次我点击列排序之后,再点读取数据,就会报这个错误。后来查询了好多。原来是因为,数据如果有变动,那么之前要去掉排序,否则是会要报错滴。所以遇到此问题,在查询数据后往ListView插入之前,记得写上一句this.listView1.Sorting = System.Windows.Forms.SortOrder.None; 当然也有不同的写法,看你怎么排序的,意思主要就是去掉之前的排序。这样索引值就不会报错啦。