CListBox DeleteString(int i)

本文介绍了一个有效的方法来完全清除ListBox中的所有记录。通过从后向前删除记录的方式避免了索引值更新导致的部分记录遗漏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//------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.*/

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值