设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3307|回复: 8
打印 上一主题 下一主题

[ActiveX] 如何在treeview刷新后保持以前的状态

[复制链接]
跳转到指定楼层
1#
发表于 2010-11-30 18:56:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
窗体中的treeview连接数据库,在重新加载后如何让它保持加载前的状态

网上找了很久,多是C#和net之类的语言,没有VB的,综合各查询结果,有个大致思路:

遍历node,如果expaned属性是true.就把此node的某个属性做个标识,然后clear各nodes后,加载完再遍历一次,如果符合此“某个属性”标识值就让其expaned为true

不过查了一遍treeview的属性,没有合适的属性能用,其中tag属性在我的treeview的click中已经用掉,不能设置,hwnd等又不匹配,还有什么属性能用而不影响加载?



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2010-11-30 21:50:50 | 只看该作者
在表中存储这个属性,或单独一个表保存它的展开状态.
另可将tag拆开给多个属性来使用
3#
发表于 2010-12-2 16:04:57 | 只看该作者
老大,可否给个例子,让我们学学?
4#
发表于 2010-12-2 16:47:27 | 只看该作者
本帖最后由 wanshan 于 2010-12-2 16:48 编辑

Dim nodeIndexMemory As Integer

Private Sub Treeview_NodeClick(ByVal Node As Object)
     
    Node.Expanded = True
    nodeIndexMemory = Node.Index
   
End Sub


Private Function shuaxin()  '刷新
        Me.TreeView.Nodes(nodeIndexMemory).Selected = True
End Function

5#
发表于 2010-12-3 00:03:46 | 只看该作者
做过刷新后重新选中刷新前已经选中的node,没有关注做expaned的属性,想一下道理是一样的,不过单选的node用一个变量存储,而expaned可能有多个,需要用动态数组存储:
6#
 楼主| 发表于 2010-12-3 23:10:38 | 只看该作者
wanshan 发表于 2010-12-2 16:47
Dim nodeIndexMemory As Integer

Private Sub Treeview_NodeClick(ByVal Node As Object)

谢谢,这个方法只能记住一个,我需要的是记住所有nodes的状态,现在用了一个笨办法,就是做了2个函数
第一个是使用数组记住当前处于展开状态的nodes的fullpath
第二个是遍历节点,如果节点的fullpath和数组中的相同,即将此节点展开
然后在刷新前调用第一个函数,刷新后调用第二个函数,这样无法你展开多少都可以记住.
现在又遇到一个问题,数组的下标不能使用变量,因为treeview的nodes的count是变化的,我用下面方法不行
dim n as integer
n=me.treeview.nodes.count
dim N_nub(n) as string
...
在运行时总是在定义数组这段出错,我只好dim N_nub(200) as string
7#
发表于 2010-12-4 14:38:27 | 只看该作者
本帖最后由 wanshan 于 2010-12-4 14:38 编辑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +15 收起 理由
软件下载 + 15 谢谢

查看全部评分

8#
发表于 2010-12-8 17:34:47 | 只看该作者
谢谢,下了一例子...
9#
发表于 2011-2-10 20:12:55 | 只看该作者
我采用的是数据表中记录初始化状态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 21:24 , Processed in 0.081864 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表