有指定索引的 FullPath 节点。
Indentation 属性返回或设置控件中对象的缩进宽度。
LabelEdit 属性返回或设置一个值,它确定是否可以编辑在 TreeView 控件中的 Node 对象的标签。
二、源程序示例
在该程序中TreeView控件能够实现项目、楼宇、单元、楼层这样四层逐级包含的关系。用户只要简单地单击每层节点“+”/“-”就能很直观地观察到一个项目中包含几幢楼,一幢楼包含几个单元,一个单元又有多少楼层。通过与页框PAGEFRAME中每一页的表格GRID联合使用,只要双击每层节点就可在相应的表中增加记录并在GRID中显示相应的详细信息。值得说明的是该程序可以实现多个项目的显示,项目节点与项目节点之间是平行同级的关系,仅仅是第二个项目首节点排在第一个之后。而楼宇节点是项目节点的子节点,单元节点是楼宇节点的子节点,楼层节点是单元节点的子节点。
源程序1实现TreeView 控件初始化
工作,即表单中的Olecontrol1.init事件填写源
程序1中所有代码。源程序2实现与页框配合,显示节点相应的详细内容,即表单中的Olecontrol1.NodeClick事件填写源程序2中所有代码。
源程序1代码如下:
LOCAL M.L_XMCOUNT,I,J,K,L,M.L_NODES,M.L_LYCOUNT,M.L_DYCOUNT,M.L_LCCOUNT
THIS.NODES.CLEAR &;&;清除所有节点
THIS.LABELEDIT=1 &;&;节点标签可以编辑
THIS.Indentation=10 &;&;缩进宽度为10个象素
SELECT SF_XMXX
set dele on
M.L_XMCOUNT=RECCOUNT()
FOR I=1 TO M.L_XMCOUNT
SELECT SF_XMXX
GO I
if !delete()
M.L_NODES=THIS.NODES.ADD(,,'XM'+XM_BH,XM_MC) &;&;向节点集合加入第一个节点KEY=XM,TEXT=项目名称
M.L_NODES.EXPANDED=.T. &;&;所有节点可以折叠
M.L_NODES.FORECOLOR=RGB(0,0,255) &;&;设置所有节点的前景颜色
M.P_XMBH=XM_BH
=REQUERY('VIEW_XMLY')
M.L_LYCOUNT=RECCOUNT('VIEW_XMLY')
IF M.L_LYCOUNT>0
FOR J=1 TO M.L_LYCOUNT
SELECT VIEW_XMLY
GO J
if !delete()
&;&;向'项目'父节点加入子节点'楼宇'KEY=LY,TEXT=楼宇实际编号
THIS.NODES.ADD('XM'+SF_XMXX.XM_BH,4,'LY'+VIEW_XMLY.LY_BH,VIEW_XMLY.LY_SJBH)
M.P_LYBH=VIEW_XMLY.LY_BH
=REQUERY('VIEW_XMDY')
M.L_DYCOUNT=RECCOUNT('VIEW_XMDY')
IF M.L_DYCOUNT>0
FOR K=1 TO M.L_DYCOUNT
SELECT VIEW_XMDY
GO K
if !delete()
&;&;向'楼宇'父节点加入子节点'单元'KEY=DY,TEXT=单元实际编号
THIS.NODES.ADD('LY'+VIEW_XMLY.LY_BH,4,'DY'+VIEW_XMDY.DY_BH,ALLTRIM(STR(VIEW_XMDY.DY_SJBH))+'单元')
M.P_DYBH=VIEW_XMDY.DY_BH
=REQUERY('VIEW_XMLC')
M.L_LCCOUNT=RECCOUNT('VIEW_XMLC')
IF M.L_LCCOUNT>0
FOR L=1 TO M.L_LCCOUNT
SELECT VIEW_XMLC
GO L
if !delete()
&;&;向'单元'父节点加入子节点'楼层'KEY=LC,TEXT=楼层实际编号
THIS.NODES.ADD('DY'+VIEW_XMDY.DY_BH,4,'LC'+VIEW_XMLC.LC_BH,ALLTRIM(STR(VIEW_XMLC.LC_SJCH))+'层')
endif
ENDFOR
ENDIF
endif
ENDFOR
ENDIF
endif
ENDFOR
ENDIF
endif
ENDFOR
源程序2如下:
*** ActiveX 控件事件 ***
LPARAMETERS node
*** ActiveX Contro1l Event ***
LOCAL M.L_NODES,M.L_SELECTED,L_INDEX
M.L_SELECTED=THISform.Olecontrol1.SELECTEDITEM.INDEX
M.L_NODES=THISFORM.OLECONTROL1.NODES(M.L_SELECTED)
THISFORM.PAGEFRAME1.PAGE1.CAPTION='项目信息'
THISFORM.PAGEFRAME1.PAGE2.CAPTION='楼宇信息'
THISFORM.PAGEFRAME1.PAGE3.ENABLED=.F.
THISFORM.PAGEFRAME1.PAGE3.CAPTION='单元信息'
THISFORM.PAGEFRAME1.PAGE4.ENABLED=.F.
THISFORM.PAGEFRAME1.PAGE4.CAPTION='楼层信息'
DO CASE
CASE M.L_NODES.KEY='XM'
THISFORM.PAGEFRAME1.ACTIVEPAGE=1
CASE M.L_NODES.KEY='LY'
T