我做了一个Treeview来加载数据库信息,然后点一个节点,在一个Listview里出现这个项的详细记录。我的问题是,如果我给这个项了添加或删除了数据,想通过Treeview重新LOAD一下,来获得当前节点对应项里的更新后的信息,这个怎么实现?(我试过在Listview里通过item.remove的方法,但是,这样给联系删除带来问题,如果Treeview能自动刷新目前选中的这个项,那就用不到Listview的事件了。)可能表述有点乱,希望大家谅解。

解决方案 »

  1.   

    如果是添加,则在Listview中添加当前前信息;
    如果删除,则将Listview清空。
    如果是修改,将当前Treeview的节点 Label值替换成新的,修改Listview信息 (Key值应该不变吧?)Treeview_click中 刷新 Listview
      

  2.   

    您说的前面几条我都知道,就是您说的最后一条
    Treeview_click中刷新,因为我的数据加载就是在这个事件里的。我想数据添加进去后,在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?
      

  3.   

    这不是很困难的事情,这样主要与你建立treeview的时候建立方式有关。如果建立得好,一切都很简单你去写一个loadata这个是装入treeview的数据
    再写一个 LoadData2(Node As Node),根据treeview节点装数据代码不给你了,给你这个思路
      

  4.   

    其实楼主的treeview +listview 可能会比他表述的更复杂。
    楼主应当再表述的清楚些呵呵。      要不然的话不难呀:  引用了 snowmiao2002(苗苗)的。...     
    如果是添加,则在Listview中添加当前前信息; 
       在listview中进行 add  
       数据库中进行 insert 
    如果删除,则将Listview清空。
       在listview中进行 Remove
       数据库中进行 delete
    如果是修改,将当前Treeview的节点 Label值替换成新的,修改Listview信息 (Key值应该不变吧?)Treeview_click中 刷新 Listview
      

  5.   

    您说的前面几条我都知道,就是您说的最后一条
    Treeview_click中刷新,因为我的数据加载就是在这个事件里的。我想数据添加进去后,在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?----------------------
    数据添加没有必要进行刷新呀?如果你同时在listview中进行过操作的话。这个时候listview中已是最新的了。  如果不同时在listview中进行操作的话。也可以刷新.因为你在数据添加的时候肯定是知道要加入到那一个treeview中的节点。 
    (在调用这个点击事件,参数怎么来?那个ByVal Node As MSComctlLib.Node 参数怎么写?)
       你可以做成一个函数嘛。 这时就可以传参数据啦
      

  6.   

    这个好办
        '刷新员工信息数据
        Dim nodeX As Node
        Set nodeX = frmEmplyee.tvwDept.Nodes(g_strNodeKey)
        Call frmEmplyee.tvwDept_NodeClick(nodeX)
    这里的g_strNodeKey为你所选择的节点,记录下来
    别忘把tvwDept_NodeClick设成public的,没什么影响
      

  7.   

    晕死.在TreeView的NodeClick事件中写代码啊.
    Private Sub tvGoodType_NodeClick(ByVal Node As MSComctlLib.Node)
        Debug.Print Node.Tag
        Debug.Print Node.Key
        If Node.Children > 0 Then '如果当前结点有子结点,则跳出
            If Node.Key <> "All" Then
                Exit Sub
            End If
        End If
        Call FillGrid(Node.Key)         '填充表格
    End Sub
      

  8.   

    我也觉得这个问题好怪哦,我也是像 daisy8675(莫依) ( )这样来做的,专门有个函数来调用数据库里的数据到Listview的,问题是,如果我用调试按F8一步步来,界面上的Listview里就能出来我添加的项,如果没有中断调试,直接F5来运行,Listview里又出不来,这我就傻了……
      

  9.   

    问题已经解决!
      哈哈,想起来就想骂自己,呵呵,是我对ADO不熟悉,在关闭一个conn连接之前又调用了那个Load2Lv函数,造成相互干扰。问题解决,散分,多谢大家帮助。(不过,我有个感觉,ADO速度还真的慢啊,比DAO差了好几个级别,但是功能强大点,没话说。)