现在的位置: 首页 > 综合 > 正文

CListBox DeleteString(int i)

2013年12月02日 ⁄ 综合 ⁄ 共 405字 ⁄ 字号 评论关闭

//------code:

int Count = m_ListBox.GetCount();

for (int i=0 ;i<=Count ; i++)
{
        m_ListBox.DeleteString(i);
}
//-----试想能完全删除ListBox中的所有行记录,错,只能删除一半 , 为什么 ?
//-----下意识修改 code:
int Count = m_ListBox.GetCount();

for (int i=Count ;i>=0 ; i--)
{
        m_ListBox.DeleteString(i);
}
/*-----完全删除!
是否已经明白了呢?
不难猜想CListBox 在删除一条记录的时候,已经把记录数重新调整过,那么假如你删除了0的那条记录(成功),那么你再删除Count(没有效果,进行错误捕捉,就可以发现),因为你进行完第一步操作以后,后面的所有记录都会更新其索引值,此时最大索引值为Count-1.*/

 

抱歉!评论已关闭.