VFP TreeView控件使用详解
更新时间:2024-01-14 01:37:01 阅读量: 教育文库 文档下载
- vfp是什么意思推荐度:
- 相关推荐
VFP TreeView控件使用详解(2)
工作帮手网(www.foxer.net),自2001年创办以来,一直坚持为在校学生、在职职工服务的宗旨。网站目前有【工作总结频道】和【公文资料频道】,为各位网友提供工作总结,学生作文,述职报告,入党申请,论文范文等实用性文章,每天坚持更新。强烈建议将本站加入收藏夹。
这个控件的使用率也是很高的,所以我们就应该好好掌握一下了。在梅子这儿有一个TreeView控件的“玩转系列”。很好!我也就是把她里面的一些精华截下来,给大家少作说明而已。如果你想系统的学一下呢,就下一个“玩转系列”吧!
简单的介绍:
TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录。TreeView控件中的各项信息都有一个与之相关的Node对象。TreeView显示Node对象的分层目录结构,每个Node对象均由一个Label对象和其相关的位图组成。在建立TreeView控件后,我们可以展开和折叠、显示或隐藏其中的节点。TreeView控件一般用来显示文件和目录结构、文档中的类层次、索引中的层次和其他具有分层目录结构的信息。
TreeView控件有3个属性页,General页、Font页、Picture页。 TreeView控件属性 1。LineStyle属性
该属性设置本项控件中Node对象之间显示的线条类型。格式: 表单.TreeView名.LineStyle=值 值的范围:
0-TvwTreeLines (缺省)三线显示兄弟节点和父子节点之间的连线
1-TvwRootLines 根(Root)线。除了上述的连线以外,还显示根目录之间的连线
需要注意的是:在设置该属性前,必须设置Style属性为TreeLine(三线)。
2。Style属性
该属性返回和设置表现在TreeView控件对象中Node对象的图形类型和文本类型。格式:
表单.TreeView名.Style=值 值的范围:
0-TvwTextOnly 文本
1-TvwPictureText 图象和文本 2-TvwPlusMinusText +/-以及文本
3-TvwPlusPictureText +/-、图象以及文本 4-TvwTreeLinesText 连线和文本
5-TvwTreeLinesPictureText 连线、图象和文本 6-TvwTreeLinesPlusMinueText 连线、+/-和文本
7-TvwTreeLinesPlusMinusPictureText (缺省)连线、+/-、图象和文本
3。Indentation属性
该属性设置各个新的Node对象缩进的量度。格式如下: 表单.TreeView名.Indentation=值 值的范围:
必须大于0的数,缺省值为38.00,默认单位是磅
4。Nodes属性和Index属性
该属性设置访问TreeView控件使用Nodes对象集合,Index指定Nodes集合中的某一个节点。访问格式: 表单.TreeView名.Nodes(index)
例如要表示当前表单中Treenode1控件的Nodes的第三个节点为: thisform.treenode1.Nodes(3)
Nodes集合的属性 1。Nodes集合的属性
该属性指定当前Nodes集合中的节点个数。格式: 表单.TreeView名.Nodes.Count
2。Text属性
该属性指定Nodes集合中某个节点的文字信息。格式: 表单.TreeView名.Nodes(index).Text
3。Key属性
该属性指定Nodes集合中某个节点的关键字。格式:工作帮手网 www.foxer.net
表单.TreeView名.Nodes(index).Key
4。另外还有对Nodes集合中某个节点进行操作的属性Root(返回当前节点的根结节)、FirsSibling(第一个兄弟节点)和Next(下一个兄弟节点)。 例如:
thisform.treeview1.Nodes(3).Root.Key
thisform.treeview1.nodes(3).firstsibling.key thisform.treeview1.nodes(3).next.key
上面的语句就分别返回了当前表单中treeview1控件的第三个节点的根结节、第一个兄弟节点和下一个兄弟节点的关键字。
Nodes集合的方法 1。Clear方法
该方法清除当前Nodes集合中的所有节点。格式: 表单.TreeView名.Nodes.Clear 本篇《VFP TreeView控件使用详解》为网站编辑为您精心挑选的示例范文,仅供参考,请勿照抄。建议将本站加入收藏夹。
2。Add方法
该方法向当前Nodes集合中添加一个新节点。格式: 表
单.TreeView.Nodes.Add(Relative,RelationShip,Key,Text,Image,Selectedimage) 解释:
Relative 表示相关联的亲属,一般用其亲属的关键字表示 RelationShip 表示与关联的亲属之间的关系。 1-tvwNext 表示亲属间是平等关系 4-tvwNext 表示亲属间是父子关系
Key 表示此节点的关键字,也是区别于其他节点的唯一标识 Text 表示此节点要显示的文本 Image 表示节点处显示的图形 举例:
thisform.treeview1.nodes.add(,\增加根节点r
thisform.treeview1.nodes.add(\增加子节点c1
TreeView控件的常用事件 1。NodeClick事件
该事件在用户单击节点文本时激活。格式: PROCEDURE TreeView名.NodeClick
LPARAMETERS node && node表示当前节点对象 &&你的程序 ENDPROC
2。Expand事件
该事件在用户展开一个\节点时激活。格式: PROCEDURE TreeView名.Ecpand LPARAMERS node &&你的程序 ENDPROC
3。Collapse事件
该事件在用户折叠一个\节点时激活。格式: PROCEDURE TreeView名.Collapse LPATAMETERS node &&你的程序 ENDPROC
简单的例子(有关用数据表作为数据环境给TreeView控件增加节点,其中再次使用了imagelist控件)
建立一个表单treeview1.scx,其数据环境为zgb.dbf,表结构如下: xm bmh bm
-------------------------
王华 001 人事处 李名 002 财务处 张应 003 科研处 张强 001 人事处 李冰 002 财务处 孙样 002 财务处 理应 003 科研出
-------------------------
向该表单中添加一个treeview控件treeview1和一个图象列表控件imagelist1,向imagelist1控件中插入两幅图片。在imagelist1控件上设计如
下事件:
PROCEDURE imagelist1.click
thisform.treeview1.linestyle=1 thisform.treeview1.style=7
select distinct bmh,bm from zgb into curs temp order by bmh selec temp go top
do while .not.eof()
this.nodes.add(,,'K'+temp.bmh,rtrim(temp.bm)) sele zgb
set filter to bmh=temp.bmh go top
do while .not.eof()
this.nodes.add('K'+TEMP.BMH,4,,RTRIM(XM)) skip enddo sele temp skip
enddo
this.imagelist=thisform.imagelist1.object for imagelist=1 to this.nodes.count if this.nodes(imagelist).children>0 this.nodes(imagelist).image='bmkey' else
this.nodes(imagelist).image='zgkey' endi
endfor ENDPROC <完>
下贴还有一个复杂一些的例子 相对复杂的例子其中使用了类
建立一个表单treevies2.scx,在其中添加一个treeview控件oletree、7个命令按钮、一个形状、一个组合框、4个标签。
对表单中对应的类treeview2的定义如下:
******************************************* **类:treeview2
******************************************* DEFINE CLASS treeview2 AS form DataSession=2 top=19 left=13 height=297 width=568 docreate=.t.
caption=\ maxbutton=.f. windowState=0 cnextkey=1_ cdbfname=\ name=\
*如果一个dbf不能打开,则设置为.f. openedsuccessfully=.f.
ADD OBJECT oletree AS olecontrol with; top=79,; left=11,; height=182,; tabindex=1,; name=\
ADD OBJECT cboparent AS combobox with; fontbold=.f.,; fontname=\宋体\fontsize=10,; rowsource=\value=0,;
controlsource=\height=23,; left=236,; style=2,;
tabindex=10,; top=267,; width=242,;
name=\
ADD OBJECT label1 AS label with; autosize=.t.,; fontbold=.t.,; fontname=\宋体\fontsize=12,;
backstyle=0,;
caption=\选择节点\height=20,; left=159,; top=271,; width=71,; tabindex=9,;
forecolor=rgb(0,0,255),; name=\
ADD OBJECT cmdnewnode AS commandbutton with; top=79,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\新根节点\enabled=.t.,; tabindex=2,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmddeletenode AS commandbutton with; top=136,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\删 除\enabled=.t.,; tabindex=4,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmdloaddbf AS commandbutton with; top=225,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\从DBF调用\
enabled=.t.,; tabindex=7,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmdsavedbf AS commandbutton with; top=195,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\存储到DBF\enabled=.t.,; tabindex=6,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmdclear AS commandbutton with; top=165,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\清 除\enabled=.t.,; tabindex=5,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmdnewchild AS commandbutton with; top=107,; left=483,; height=26,; width=82,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\新子节点\enabled=.t.,; tabindex=3,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT cmdclose AS commandbutton with;
top=267,; left=485,; height=26,; width=80,;
fontbold=.t.,; fontname=\宋体\fontsize=11,;
caption=\关 闭\enabled=.t.,; tabindex=5,;
forecolor=rgb(255,0,0),; name=\
ADD OBJECT shape1 AS shape with; top=13,; left=11,; height=56,; width=548,; backstyle=0,; specialeffect=0,; name=\
ADD OBJECT label3 AS label with; top=24,; left=21,; height=40,; width=529,; fontbold=.t.,; fontname=\宋体\fontsize=10,; wordwrap=.t.,; tabindex=0,;
forecolor=rgb(0,0,255),; name=\
caption=\控件显示一个类似浏览器的界面。单击“新根节点”添加一个新项到该控件中。单击“新子节点”添加一个;
子节点到当前选择的节点上。可以单击“存储到DBF”将这些节点存储到一个DBF文件中。\
ADD OBJECT label4 AS label with; autosize=.t.,; top=7,; left=19,; height=19,; width=85,;
fontbold=.t.,; fontname=\宋体\
fontsize=11,; wordwrap=.t.,; tabindex=0,;
forecolor=rgb(255,0,0),; name=\caption=\操作说明\
*!*返回新节点的一个新关键字 PROCEDDURE newkey
cKey=this.cNextKey
this.cNextKey=allt(str(val(this.cNextKey)+1)+\ PRTURN cKey ENDPROC
PROCEDURE refreshcombo this.cboparent.clear
for i=1 to this.oletree.nodes.count
this.cboparent.addlistitem(this.oletree.nodes.item(i)).fullpath,i,1)
endfor ENDPROC
*!*检查确保该表具有存储或恢复一个轮廓所需要的字段 PROCEDURE verifytablestructure
LOCAL lafields[1,11],lnpos,laneeded[3],lncnt #DEFINE FIELD1_LOC\ #DEFINE FIELD2_LOC\ #DEFINE FIELD3_LOC\ laNeeded[1]=FIELD1_LOC laNeeded[2]=FIELD2_LOC laNeeded[3]=FIELD3_LOC
=AFIELDS(laFields,laNeeded[lnCnt]) FOR lnCnt=1 to alen(laNeeded)
lnPos=ASCAN(laFields,laNeeded[lnCnt]) IF lnPos=0 .or. laFields[lnPos+1]!='C'
#DEFINE TITLE_LOC \
#DEFINE MSG_LOC\ +chr(13)+chr(13)+FIELD1_LOC+;
chr(13)+FIELD2_LOC+chr(13)+FIELD3_LOC =messagebox(msg_loc,48+0+0,title_loc) return .f. ENDIF
ENDFOR return .t. ENDPROC
PROCEDURE opendbf
LPARAMETERS lcDBFNAME,llExclusive thisform.openedsuccessfully=.t. #DEFINE ERR_LOC \ IF !file (lcDBFNAME)
#DEFINE ERR1_LOC \ =messagebox(err1_loc,48+0+0,err_loc) return .f. ENDIF
lcAlias=substr(lcDBFName,rat(\ lcAlias=substr(lcAlias,1,at(\ IF llExclusive
use (lcDBFName) in 0 exclusive ENDIF
IF !use (lcAlias)
use (lcDBFName) in 0 shared ENDIF
select (lcAlias)
return thisform.openedsuccessfully ENDPROC
*!*基于选择的项来允许/废止相应的按钮 PROCEDURE checkbuttons o=thisform.oletree
IF isnull(o.selecteditem)then thisform.cmdnewchild.enabled=.f. thisform.cmdndeletenode.enabled=.f. ELSE
thisform.cmdnewchild.enabled=.T. thisform.cmdndeletenode.enabled=.T. ENDIF ENDPROC
PROCEDURE init
*!*用init 来检查OCX是否安装和装入
IF type(\return .f. ENDIF ENDPROC
PROCEDURE oletree.afterlabeledit LPARAMETERS cancel,newstring IF !isnull(newstring)
this.selecteditem.text=newstring thisform.refreshcombo
正在阅读:
VFP TreeView控件使用详解01-14
汽车理论复习题09-15
固定资产无形资产管理制度12-05
浅谈乡土地理资源在高中地理教学中的应用05-12
杜仲的药理作用及应用开发的现状10-11
人民日报关于物价调控的评论,22日~26日(五篇)05-02
好看的欧美悬疑电影07-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 控件
- 详解
- TreeView
- 使用
- VFP
- 9桃花源记导学案(转修自5156)
- 嘉兴市教育研究院(通知)
- 崔东芳:小学弟子规教学计划
- 正一开光科仪
- 2013电子设计竞赛复试题波形发生器 - 图文
- 营改增后建筑企业涉税风险技巧
- 2012高考物理真题分类解析-牛顿运动定律
- 三年级科学《让灯亮起来》教案
- 有效咳嗽咳痰
- 物业接管验收手册 2014.4.18
- 三年级《千克的初步认识》教学设计
- 中国大学分专业排名-管理学
- 世界银行集团中国业务介绍
- 大学生闲置物回收再利用公益事业创业项目
- 数据结构上机答案
- 中考专题 数学(部分1) - 图文
- 深圳市政府投资信息化工程建设项目项目建议书编制指南
- 红外光学材料
- 用打点计时器测速度(匀变速直线运动的实验探究)
- 云南重点项目-玫瑰花种植与精油加工项目可行性研究报告