首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

TreeView 控件 如何展开所有节点

2012-02-13 
TreeView 控件 怎么展开所有节点又怎么收缩所有节点呢另外 怎么获取父节点的key?node.key 本节点的值node.

TreeView 控件 怎么展开所有节点
又怎么收缩所有节点呢

另外 怎么获取父节点的key?

node.key 本节点的值
node.relative 提示unknown name

[解决办法]
加入数据到 TreeView 控件中
在表单中添加一个过程:DrawTree,它的核心代码如下:
LOCAL XNODE,XNODE1
WITH This.treeview
SELECT DEPARTMENT
SCAN ALL
XNODES=.NODES.ADD(,,'DEP'+ALLTR(STR(DEPARTMENT.DEPART_ID,5)),;
ALLTR(DEPARTMENT.DESC),1)
XNODES.EXPANDEDIMAGE=2 &&该节点展开时,该节点用的图标。
SELECT EMPLOYEE
SCAN FOR EMPLOYEE.DEPART_ID=DEPARTMENT.DEPART_ID
IF MANGER
XNODE1=.NODES.ADD(XNODES,4,'EMP'+ALLTR(STR(EMPLOYEE.EMP_ID,5)),;
ALLTR(EMPLOYEE.LAST_NAME)+" "+ALLTR(EMPLOYEE.FIRST_NAME),3,4)
XNODE1.BOLD=.T. &&部门负责人用粗体显示。
ELSE
.NODES.ADD(XNODES,4,'EMP'+ALLTR(STR(EMPLOYEE.EMP_ID,5)),;
ALLTR(EMPLOYEE.LAST_NAME)+" "+ALLTR(EMPLOYEE.FIRST_NAME),3,4)
ENDIF
ENDSCAN
XNODES.EXPANDED=.T. &&展开该节点
ENDSCAN
ENDWITH
这里有一个十分重要的方法:ADD(orelative,irelationship,ckey,ctext,iimage,iselectedimage),它的作用是:添加一个节点到 TreeView 空间中。
orelative:可选参数。指定已经存在的节点对象,它与 relationship 参数联合使用可以设定新添加控件与原有控件的关系。省略该参数表明新添加的节点是根级节点。
irelationship:可选参数。它与 relative 参数联合使用可以设定新添加控件与原有控件的关系,默认是下一个兄弟节点。
ckey:可选参数。设定该参数将便于对 TreeView 各节点的控制,单在每一个 TreeView 控件中,不可以有两个节点使用同一个 key。key是字符型的属性,但经验告诉我们不要以数字作为 key 的开头字符。
ctext:必填参数。在节点中显示的字符串。
iimage:可选参数。节点图标,它的取值来源于imagelist空间的图片索引。
iselectedimage:可选参数。节点被选中时显示的图标,它的取值来源于imagelist空间的图片索引。
下面我们再来看一下irelationship参数的取值情况:
0:第一个。新添加的节点放在 orelative 节点的所有同级节点的前面(兄弟关系)。
1:最后一个。新添加的节点放在 orelative 节点的所有同级节点的最后(兄弟关系)。
2:下一个。新添加的节点放在 orelative 节点的后面(兄弟关系)。
3:前一个。新添加的节点放在 orelative 节点的前面(兄弟关系)。
4:子节点。新添加的节点放在 orelative 节点的下级(父子关系)。 
在上面的代码中,我们执行了两个 scan 循环。外面的循环是针对department表的,这里很重要的是记录下每一个部门节点对象,并以它作为产生员工节点的依据:

[解决办法]

SQL code
假设你的树控件的 Name 值为 OleTreeView5展开所有节点:m.lnTreeCount= Thisform.OleTreeView5.Nodes.CountFor m.lnI=1 To m.lnTreeCount    Thisform.OleTreeView5.Nodes(m.lnI).Expanded=.T.    && 展开节点Endfor折叠所有节点m.lnTreeCount= Thisform.OleTreeView5.Nodes.CountFor m.lnI=1 To m.lnTreeCount    Thisform.OleTreeView5.Nodes(m.lnI).Expanded=.F.    && 折叠节点Endfor 

热点排行