所有数据都在ListBox中显示的,当添加一条记录后,怎样在ListBox控件中立即显示出来?
我的做法是在添加完记录后调用一个重新显示所有数据的方法,但仍然不能即时显示。
但是CListBox中也没有更新或刷新数据之类的方法。请问我该如何做到?感激涕零

解决方案 »

  1.   

    没有,只能用DeleteAllItems先删掉结点,再重新添加所有结点。。
      

  2.   

    没有,只能用DeleteAllItems先删掉结点,再重新添加所有结点。。
    或者你自己在添加记录的时候手动地加到listbox上
    不过这样不是很安全
      

  3.   


    void CInstanceView::Display(void)
    { m_lstAll.ResetContent(); DB myDB;
    CString strConn("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db1.mdb;");
    myDB.Conn(strConn);
    CString strSql("select * from [user]");
    myDB.Open(strSql); CString strNo, strName, strSex;
    _variant_t var;
    while (!myDB.m_pRecordset->adoEOF)
    {
    var = myDB.m_pRecordset->GetCollect("no");
    if (var.vt != VT_NULL)
    {
    strNo = (LPCSTR)(_bstr_t)var;
    } var = myDB.m_pRecordset->GetCollect((_variant_t)(long)1);
    if (var.vt != VT_NULL)
    {
    strName = (LPCSTR)(_bstr_t)var;
    } var = myDB.m_pRecordset->GetCollect("sex");
    if (var.vt != VT_NULL)
    {
    strSex = (LPCSTR)(_bstr_t)var;
    } //m_lstAll.AddString(strNo + "-->" + strName + "-->" + strSex);
    m_lstAll.InsertString(-1, strNo + "-->" + strName + "-->" + strSex); // 添加到列表框
    myDB.m_pRecordset->MoveNext();
    }
    }
    这个是添加完记录调用的函数,可是ListBox里仍然没有显示出新添加的数据,何故呢?
      

  4.   

    在最后调用UpdateData(FALSE);试试..
      

  5.   

    数据量上千的话,用virtual list,SetItemCount之后自己捕获LVN_GETDISPINFO