删除的同时也删除LIST中的
DeleteItem

解决方案 »

  1.   

    最简单也是最有效的做法是同上
    删除的同时也删除LIST中的 
    DeleteItem
      

  2.   

    我没用过CListCtrl,用过dbgrid,不知你的CListCtrl是不是直接与数据库相连的;
    如果是的话,更新数据库集,如果不是的话就再读一遍好了
      

  3.   

    CListCtrl 没有绑定到数据库的操作,只能删除和加入,没有其他方法。
      

  4.   

    删除后重新读取一次,或者直接在list控件中删除相应的行。
      

  5.   

    DeleteAllItem
    insert
    setitemtext
      

  6.   

    可以先删除listctrl里面的所有数据.然后再从数据库中重新获取.这种方法最简单请快.但需再次调用数据库
    或者你可以删除数据库之里识别所删数据的一个关键字,然后在listctrl里面查找这个关键字,再把这个关键字对应的数据从listctrl中删除也可.这样就不用反复调用数据库了.但你要注意关键字的唯一性
      

  7.   

    那就把刷新数据写成一个单独的函数不就行了!
    而且如果你只是简单的添加删除修改listctrl中的数据,没必要数据都重新刷新啊~
    可以先在数据库中删除记录,然后再在listctrl中删除数据不就行了~
      

  8.   

    我这有一段代码:m_ctrlListTable.SetRedraw(false);
    m_ctrlListTable.DeleteAllItems();
    int i=0;
        for(;i<strArrayTableName.GetSize();i++)
    {
    iStr.Format("%d",i);
    strEnvTablename=strArrayTableName.GetAt(i);
    strOldTableName=strEnvTablename; strNewTableName=strEnvTablename+strMonthTableName;
    strArrayNewTableName.Add(strNewTableName); m_ctrlListTable.InsertItem (i, iStr);
    m_ctrlListTable.SetItemText (i, 1,strEnvTablename);
    m_ctrlListTable.SetItemText (i, 2,strNewTableName);
    if(DATAMOUDLE->getEnvTableName(strOldTableName,strTopName))
       DATAMOUDLE->getEnvTableStatus(strOldTableName,strIQExist);
    else
    strIQExist="不执行查询操作";

    strArrayOldTableName.Add(strOldTableName);
    strArrayIQRecordCount.Add(strIQExist); m_ctrlListTable.SetItemText (i, 3,strOldTableName);
    m_ctrlListTable.SetItemText (i, 4,strIQExist);
    }
    m_ctrlListTable.SetRedraw();
      

  9.   

    直接把读取功能  作成一个 UpDataAll()函数每次删除的时候调用一次  这样做比较保险
      

  10.   

    最直观的,
    假设操作的LIST叫plist
    //先删除list中原有的全部内容
    plist.DeleteAllItems();
    //重新从数据库中读数据
    //打开数据库,读数据
    //写入LIST中
    while(数据库本条数据不为空)
    {
    plist.InsetItem(0,str0);
    plist.SetItemText(0,1,str1);
    plist.SetItemText(0,2,str2);
    ......
    p_Set.MoveNext();//数据库p_Set中移至下一条
    }