是这样的,今天这个忙了快一个小时。后来发现不是我的问题,居然是 M$ 的 BUG。.NET 这些奇异半成品地方太多了。
就是在 ListView 中,在 View = Large 下的大图显示方式下,如果有 4 个 items,A,B,C,D。
如果你删了第一个 item A,然后,又把这个 item A 插入原来排在它后面的 item B 后面,理论上,我们在界面上应该看到是这样的顺序,B,A,C,D。
但奇怪的事情就出来了,它显示的是 B,C,D,A。
如果这时候你扫描一下 ListView.Items,就会发现,在 ListViewItemCollection 中,就是我们想要的 B,A,C,D 的顺序,
也就是说,界面上显示的顺序,与 数据列表 中的 顺序,并不一致!
解决方法,修改对齐属性,触发 ListView 中的更新机制:
ListView1.Alignment = ListViewAlignment.Default ListView1.Alignment = ListViewAlignment.Top
注意,我已经试过了,按上面方式增删了 ListViewItemCollection 内容后,直接调用 ListView1.Refresh() 是没有用的!