关于listview的双击错误问题?

zwh202342 2006-11-21 10:35:28
我在双击事件中加入如下代码
if (lv->ItemIndex != -1)
{
return;
}
try
{
it = lv->Selected ;
it->SubItems->Add("1111111");
}
catch(...)
{
return ;
}
双击空项目时出现错误!而且不跳入代码中!晕倒
如何防止点击空项目时出错,望高手赐教了!
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwh202342 2006-11-21
  • 打赏
  • 举报
回复
多谢朋友们的帮助了!一人五十
zwh202342 2006-11-21
  • 打赏
  • 举报
回复
自己解决了!^_^
给分!
netsys2 2006-11-21
  • 打赏
  • 举报
回复
代码有问题,你也没有说你打算干什么。

if (lv->ItemIndex != -1)
{
return;//如果双击某已存在项,则退出,这就是你看到的“而且不跳入代码中!晕倒”
}

//下面是双击空白处
try//
{
it = lv->Selected ;//此不对,空白处怎么会有Selected呢,

it->SubItems->Add("1111111");//此处的it肯定为NULL,你调用它的方法肯定会出错
}
catch(...)
{
return ;
}


如果你要求是点击空白处增加一新行,应该这样:

if (lv->ItemIndex != -1)
{
return;
}
try
{
it = lv->Items->Add();
it->Caption = "新同学";
it->SubItems->Add("1111111");
}
catch(...)
{
return ;
}
zwh202342 2006-11-21
  • 打赏
  • 举报
回复
另外,it已定义为TListItem
zwh202342 2006-11-21
  • 打赏
  • 举报
回复
To :wood542344()
代码已测试过,还是出错!
wood542344 2006-11-21
  • 打赏
  • 举报
回复
lv->Selected 是一个node类型的,你这个it有没定义过?
防止选中为空很简单:if(lv->selected)就可以了。
zwh202342 2006-11-21
  • 打赏
  • 举报
回复
补充一下,listview的模式为report,添加有好几列。

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧