POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
while(pos)
{
int nIndex = m_ListCtrl.GetNextSelectedItem(pos);
m_ListCtrl.DeleteItem(nIndex);
pos = m_ListCtrl.GetFirstSelectedItemPosition(); //这步很重要,不然删除不完全
m_ListCtrl.Update(nIndex);
}
20 个解决方案
#1
删除的时候从后面往前删除就不会有这个问题了。
#2
最笨的方法列表控件根据数据刷新一遍
#3
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
#4
用Updata刷新吗,试过了,不行啊
#5
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
#6
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
#7
我一般是所有的表项都删了再重插入一遍
#8
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
int nSelected=m_ListCtrl.GetNextSelectedItem(p); //获取选中行的索引
然后呢,从小到大的顺序是什么意思啊,依次?我只删除那行选中行啊,版主大神求代码啊
#9
我一般是所有的表项都删了再重插入一遍
但是再重新插入一遍的话怎么知道删除的是哪一行呢,就是说怎么知道不需要再插入哪一行了?
而且我有一个功能就是DeleteAllItem清空全部数据,但是效果跟DeleteItem是一样的,都会留下空白
#10
我一般是所有的表项都删了再重插入一遍
但是再重新插入一遍的话怎么知道删除的是哪一行呢,就是说怎么知道不需要再插入哪一行了?
而且我有一个功能就是DeleteAllItem清空全部数据,但是效果跟DeleteItem是一样的,都会留下空白
#11
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。int nSelected=m_ListCtrl.GetNextSelectedItem(p); //获取选中行的索引
然后呢,从小到大的顺序是什么意思啊,依次?我只删除那行选中行啊,版主大神求代码啊
就是你通过GetFirstSelectedItemPosition、GetNextSelectedItem这些函数获取index索引以后,先不要删除,把这些索引保存一下,比如存入到数组中,然后从后往前遍历数组,取出元素,调用DeleteItem删除之即可。
#12
把nSelect以下的依次通过SetItemText传递给上面的行,然后删除最后一行就可以了!
CString strGet;
for(int i= nSelect;i<m_ListCtrl.GetItemCount()-1;i++)
{
strGet = m_ListCtrl.GetItemText(i+1,0);
m_ListCtrl.SetItemText(i,0,strGet);
.....
}
m_ListCtrl.DeleteItem(m_ListCtrl.GetItemCount()-1);
CString strGet;
for(int i= nSelect;i<m_ListCtrl.GetItemCount()-1;i++)
{
strGet = m_ListCtrl.GetItemText(i+1,0);
m_ListCtrl.SetItemText(i,0,strGet);
.....
}
m_ListCtrl.DeleteItem(m_ListCtrl.GetItemCount()-1);
#13
从后面往前面删除.
伪代码
for(int i=getitemcount()-1;i>=0;--i)
{
if(getitemstate(i,xxxxxxx)==ITEM_SLECTETED)
deleteitem(i);
}
伪代码
for(int i=getitemcount()-1;i>=0;--i)
{
if(getitemstate(i,xxxxxxx)==ITEM_SLECTETED)
deleteitem(i);
}
#14
我是这么做的,直接从配置文件读出来,删除的时候删除掉指定的行,这行就从配置文件里删除了,我没有再把它们保存一下,感觉没有这个必要吧,下次打开再插入一行,这一行就被插入到配置文件最后一行了啊,没有多出空白行
#15
void TestMessages::OnDel()
{
// TODO: 在此添加命令处理程序代码
CString str;
m_list.GetText(m_list.GetCurSel(),str);
::WritePrivateProfileString(_T("TextMessages"),str,NULL,_T(".\\DataLink.ini"));
int pos=m_list.DeleteString(m_list.GetCount()-1);
m_list.UpdateWindow();
if(m_list.GetCount()>0)
{this->m_list.SetCurSel(pos-1);}
}
看看这个
#16
选中行以下全删掉,然后把除了选中的那行重新插入
#17
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#18
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
#19
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。 您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
不好意思
你被限制权限不是我操作的
具体情况我也不清楚
您可以去客服专区发帖投诉
http://bbs.****.net/forums/Service
会有人受理的
#20
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。 您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
不好意思
你被限制权限不是我操作的
具体情况我也不清楚
您可以去客服专区发帖投诉
http://bbs.****.net/forums/Service
会有人受理的
谢谢,已经解封啦
#21
#1
删除的时候从后面往前删除就不会有这个问题了。
#2
最笨的方法列表控件根据数据刷新一遍
#3
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
#4
最笨的方法列表控件根据数据刷新一遍
#5
删除的时候从后面往前删除就不会有这个问题了。
#6
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
#7
我一般是所有的表项都删了再重插入一遍
#8
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
int nSelected=m_ListCtrl.GetNextSelectedItem(p); //获取选中行的索引
然后呢,从小到大的顺序是什么意思啊,依次?我只删除那行选中行啊,版主大神求代码啊
#9
我一般是所有的表项都删了再重插入一遍
但是再重新插入一遍的话怎么知道删除的是哪一行呢,就是说怎么知道不需要再插入哪一行了?
而且我有一个功能就是DeleteAllItem清空全部数据,但是效果跟DeleteItem是一样的,都会留下空白
#10
我一般是所有的表项都删了再重插入一遍
但是再重新插入一遍的话怎么知道删除的是哪一行呢,就是说怎么知道不需要再插入哪一行了?
而且我有一个功能就是DeleteAllItem清空全部数据,但是效果跟DeleteItem是一样的,都会留下空白
#11
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。int nSelected=m_ListCtrl.GetNextSelectedItem(p); //获取选中行的索引
然后呢,从小到大的顺序是什么意思啊,依次?我只删除那行选中行啊,版主大神求代码啊
就是你通过GetFirstSelectedItemPosition、GetNextSelectedItem这些函数获取index索引以后,先不要删除,把这些索引保存一下,比如存入到数组中,然后从后往前遍历数组,取出元素,调用DeleteItem删除之即可。
#12
把nSelect以下的依次通过SetItemText传递给上面的行,然后删除最后一行就可以了!
CString strGet;
for(int i= nSelect;i<m_ListCtrl.GetItemCount()-1;i++)
{
strGet = m_ListCtrl.GetItemText(i+1,0);
m_ListCtrl.SetItemText(i,0,strGet);
.....
}
m_ListCtrl.DeleteItem(m_ListCtrl.GetItemCount()-1);
CString strGet;
for(int i= nSelect;i<m_ListCtrl.GetItemCount()-1;i++)
{
strGet = m_ListCtrl.GetItemText(i+1,0);
m_ListCtrl.SetItemText(i,0,strGet);
.....
}
m_ListCtrl.DeleteItem(m_ListCtrl.GetItemCount()-1);
#13
从后面往前面删除.
伪代码
for(int i=getitemcount()-1;i>=0;--i)
{
if(getitemstate(i,xxxxxxx)==ITEM_SLECTETED)
deleteitem(i);
}
伪代码
for(int i=getitemcount()-1;i>=0;--i)
{
if(getitemstate(i,xxxxxxx)==ITEM_SLECTETED)
deleteitem(i);
}
#14
我是这么做的,直接从配置文件读出来,删除的时候删除掉指定的行,这行就从配置文件里删除了,我没有再把它们保存一下,感觉没有这个必要吧,下次打开再插入一行,这一行就被插入到配置文件最后一行了啊,没有多出空白行
#15
void TestMessages::OnDel()
{
// TODO: 在此添加命令处理程序代码
CString str;
m_list.GetText(m_list.GetCurSel(),str);
::WritePrivateProfileString(_T("TextMessages"),str,NULL,_T(".\\DataLink.ini"));
int pos=m_list.DeleteString(m_list.GetCount()-1);
m_list.UpdateWindow();
if(m_list.GetCount()>0)
{this->m_list.SetCurSel(pos-1);}
}
看看这个
#16
选中行以下全删掉,然后把除了选中的那行重新插入
#17
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#18
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
#19
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。 您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
不好意思
你被限制权限不是我操作的
具体情况我也不清楚
您可以去客服专区发帖投诉
http://bbs.****.net/forums/Service
会有人受理的
#20
如何从后面往前删啊,我只是删除选中行啊,是要一个for循环?
删除的时候从后面往前删除就不会有这个问题了。
得到所选中行的索引(从小到大的顺序),依次从后往前删除即可。 您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
斑竹们,为什么我不能发帖?
提示【您的帐户被限制发帖,如有疑问请联系版主或论坛管理员。】
但是好歹给个版主或论坛管理员的联系方式吧,邮箱还是发帖,还是怎么联系?
那个【qq316293804】的账号被限制发帖了,所以换个马甲来发帖联系斑竹,希望速速处理~
不好意思
你被限制权限不是我操作的
具体情况我也不清楚
您可以去客服专区发帖投诉
http://bbs.****.net/forums/Service
会有人受理的
谢谢,已经解封啦