Jul 5, 2008

ListCtrl的删除行功能

就一个小问题
我往表格里InsertItem
然后更新的时候我原先直接SetItemText
结果发现计算机没有删除原先的行,而是直接插入新行,把原有行往下移

单步调,把F10快给按烂了
没找到.感觉是对的啊
用于for循环里递进的i的值我一个个跟踪过去
是对的
靠,那是怎么回事

后来才发现,我按照常规的做法
for(i=0;i{
DeleteItem(i);
}
这是不对的
错在哪里呢???
错就错在M表格有一个自动缩进的功能,你删除了一个项
它自动缩进.
然后就发现问题所在了
表格项0对应记录1.当我第一次delete时delete掉了Item(0),也就是记录1
表格项1原先对应记录2,而第一次删除后自动缩进,变成对应记录3了
记录2则对应了表格项0;

ok,那我第二次deleteItem,是delete掉了Item(1),也就是记录3
好了,delete结束了,因为表格项2这回是空记录了(该死的,这里有溢出,可能溢出处理被封装了)
那这万恶的记录2就幸存了下来
继续由计算机往表格下端移动

No comments:

Powered By Blogger