标题:目录树
只看楼主
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
 问题点数:0 回复次数:9 
目录树
请问VFP里面的目录树怎么实现?有没有事例发一个上来学习一下?
搜索更多相关主题的帖子: 目录 
2008-01-25 23:20
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
希望下面的内容能给楼主帮助
在VFP中如何历遍所有文件夹和文件
    在VFP中,能象一些杀毒软件那样,找遍磁盘的所有文件夹和文件吗?答案是肯定的,而且很简单:
*利用VFP的Create Cursor -SQL命令建立有5个字段的临时库
*结合前面提到的ADIR()函数便可完成。
下面是具体代码:
dqml='C:' &&需扫描的盘符
use Create Cursor mylsdbf (wjmc c(120),wjcd n(10),wjrq d,wjshj c(10),wjsx c(6))
xGS=1
xCD=0
append BLANK
REPL wjmc WITH dqml
do while !eof()
   nRecn=Recn()
   dqml=allt(wjmc)+'\'
   x=adir(Mysz,(dqml+'*.*'),'rashd')
   if x<>0
     for I=3 to x
      Mysz(I,1)=dqml+Mysz(I,1)
      xGS=xGS+1
      xCD=xCD+Mysz(I,2)
     endf
     append from array Mysz for allt(wjmc)<>'.' AND allt(wjmc)<>'..' and 'D'$wjsx   endi
  go nRecn
  skip
endd
use

活到老,学到老! http://www. E-mail:hu-jj@
2008-01-26 10:27
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
得分:0 
谢谢兄弟帮忙,我想要的目录树是这种形式的
能指点一下吗?
2008-01-26 16:06
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
可以通过TreeView控件来实现。

活到老,学到老! http://www. E-mail:hu-jj@
2008-01-26 19:15
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
得分:0 
帮我搞一个我学习一下吗?谢谢哟!
新建文件夹.rar (56.52 KB)
2008-01-26 19:26
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
得分:0 
谁帮我做一个目录树谢谢
2008-01-27 19:10
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
这是我所找到的最详细的资料:
TreeView 控件

    TreeView 控件用来显示目录树结构分级视图,如同 Windows中显示的文件和目录。TreeView 控件中的各项信息都有一个与之相关联的Node对象。每个 Node 对象均由一个 Label 对象和其相关的位图组成。建立TreeView 控件后,我们可以展开和折叠、访问其中的节点。

    要在 TreeView 控件中使用图标,必须通过 ImageList 控件并用代码与其关联起来,方法是设置 TreeView 控件ImageImageList属性。
    语句如下:
    This.ImageList=Thisform.Images
    其中 Thisform.Images 为 ImageList 控件的对象名

在以下介绍中我们所见到的object.指的是 表单.TreeView 名.的引用

索引号:Tree控件中的对象是用索引号(index属性)来确定的,比如有一个节点和一个子节点,那么节点的索引号为1,子节点的索引号为2。Tree的索引号是会变的,如有两个节点并各有一子节点
- 节点1(索引号1)
  子节点(索引号2)
-节点2(3)
   子节点(4)
如果在节点1或其子节点中添加一个子节点的话,那么节点2的索引将变为4,其子节点为5

一、属性

Appearance 属性
Appearance 属性用来指定或返回 TreeView 控件的外观。

语法
object.Appearance [ = value ]

value 数值表达式,其值范围如下:
 0 控件的外观为平面显示
 1 缺省值 控件的外观为3D显示。

BorderStyle 属性
用来指定或返回 TreeView 控件的边界风格。

语法
object.BorderStyle [ = value ]

value 数值表达式,其值范围如下:
 0 缺省值 有边线
 1 无边线

说明
BorderStyle 属性仅在 Appearance 属性的值为0时有效

Checkboxes 属性
用来指定或返回 TreeView 控件的节点是否显示复选框。

语法
object.Checkboxes [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不显示
 .T. 显示

说明
节点的复选框大小不可更改

Comment 属性
用来指定或返回 TreeView 控件的有关信息。

语法
[ = value ]

value 字符串表达式,其值范围如下:
 任意字符串表达式 缺省值为空

DragIcon 属性
指定节点拖放时显示的图标

语法
object.DragIcon [ = value ]

value 字符串表达式,其值范围如下:
 有效的图标路径 缺省值为空

DragMode 属性
指定 MouseDown 事件上的拖动操作为人工或自动拖放

DropHighlight 属性

Enabled 属性
用来指定或返回用户可否访问 TreeView 控件。

语法
object.Object.Enabled [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 不可访问
 .T. 缺省值 可访问

说明
 TreeView 控件的 Enabled 属性很奇怪,并不象其它对象一样可以直接指定为 object.Enabled=.F. 而必须以这种格式写如:
Thisform.TreeView.Object.Enabled=.F.

Font 属性
设置 TreeView 控件的字体属性

说明
很奇怪 TreeView 控件的字体属性在运行时刻修改不起作用,在属性工具栏中修改也无效只能通过右击 TreeView 控件选择 TreeCtrl Properties 进行修改。

FullRowSelect 属性
用来指定或返回 TreeView 控件的节点在选中时是否将文字以外部分也高亮显示。

语法
object.FullRowSelect [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 仅将节点文本高亮显示
 .T. 整个节点高亮显示

HideSelection 属性
用来指定或返回在 TreeView 控件失去焦点时节点是否保持选中状态的显示。

语法
object.HideSelection [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 保持显示
 .T. 缺省值 不保持显示

HotTracking 属性
用来指定或返回 TreeView 控件的节点在鼠标覆盖时是否以下划线显示为热状态。

语法
object.HotTracking [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不显示
 .T. 显示

hWnd 属性
返回TreeView的窗口句柄。

ImageList 属性
用来与 ImageList 控件关联以便能够在 TreeView 控件中使用图标。

语法
object.ImageList=object.Images
其中 object.Images 为 ImageList 控件的引用。

Indentation 属性
用来指定或返回 TreeView 控件的节点的行缩进宽度。

语法
object.Indentation [ = value ]

value 数值表达式,其值范围如下:
    大于0的数值可为小数

说明
Indentation 属性仅在 Style 属性的值为4、5、6、7时有效

LabelEdit 属性
用来指定或返回 TreeView 控件节点是否可以由用户来修改。

语法
object.LabelEdit [ = value ]

value 数值表达式,其值范围如下:
 0 缺省值 可更改
 1 不可更改

LineStyle 属性
用来指定或返回 TreeView 控件节点对象之间显示的线条类型。

语法
object.LineStyle [ = value ]

value 数值表达式,其值范围如下:
 0 缺省值 三线显示兄弟节点和父子节点之间的连线。
 1 根线。除了上述的连线外,不显示根目录之间的连线

MouseIcon 属性

MousePointer 属性
设置当鼠标位于 TreeView 控件上时所显示的鼠标图标。

Name 属性
用来指定或返回 TreeView 控件在表单中引用时的对象名。

语法
object.Name [ = value ]

value 字符串表达式

Nodes 属性
  Nodes 是节点对象集合,用来返回与设置 TreeView 控件的节点对象的相关属性与方法的。

(1)Add 方法
在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。

语法:
object.Nodes.Add(relative, relationship, key, text, image, selectedimage)

Add 方法的语法包含下面部分:
部分 ????描述

relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。
relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。
key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。(节点的Key不能有重复,否则发生错误)
text 必需的。在 Node 中出现的字符串。(显示的节点文本)
image 可选的。在关联的 ImageList 控件中的图象的索引。
selectedimage 可选的。在关联的 ImageList 控件中的图象的索引,在 Node 被选中时显示。

设置值
relationship 的设置值是:
常数 ????值 ??描述
tvwFirst ??0 ??首的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之前。
tvwLast ? ?1 ??最后的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后
tvwNext ?? 2 ??(缺省)下一个节点。该 Node 位于在 relative 中被命名的节点之后。
tvwPrevious  3 ??前一个节点。该 Node 位于在 relative 中被命名的节点之前。
tvwChild ??4 ??(缺省)子节点。该 Node 成为在 relative 中被命名的节点的子节点。

注意如果在 relative 中没有被命名的 Node 对象,则新节点被放在节点顶层的最后位置。

(2)Clear方法
清除TreeView控件的所有节点。

语法:
object.Nodes.Clear

(3)Remove 方法
移去 TreeView 控件中的单一节点

语法:
object.Nodes.Remove(索引号)

(4)Count 属性
返回一个数值型值,为Tree控件的总节点数(所有)

语法:
object.Nodes.Count

(5)BackColor 属性
返回或设置指定节点的背景颜色。

语法:
object.Nodes(index).BackColor [ = value ]

value 数值表达式,其值范围如下:
一个有效的颜色表达式如 RGB(255,255,255)

(6)Bold 属性
用来指定或返回用户可否访问 TreeView 控件指定节点是否用粗体显示。

语法
object.Nodes(index).Bold [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 正常
 .T. 粗体显示

(7)Checked 属性
用来设置或返回用户可否访问 TreeView 控件指定节点的复选框的状态。

语法
object.Nodes(index).Checked [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 未选中
 .T. 选中

(8)Child 属性
返回一个指定节点的第一个子节点的对象引用。

语法:
object.Nodes(index).Child

(9)Children 属性
返回指定节点的子节点数。

语法:
object.Nodes(index).Children

返回一个数值表达式为子节点数

(10)Expanded 属性
用来设置或返回指定节点的展开或折叠状态。

语法
object.Nodes(index).Expanded [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 折叠
 .T. 展开

(11)ExpandedImage 属性
用来设置或返回指定节点的展开时的图标。

语法
object.Nodes(index).ExpandedImage [ = value ]

value 数值表达式,其值范围如下:
一个有效的ImageList控件的图标索引。

(12)FirstSibling 属性
返回一个指定节点的同级节点的第一个子节点的对象引用。

语法:
object.Nodes(index).FirstSibling

(13)ForeColor 属性
返回或设置指定节点的字符颜色。

语法:
object.Nodes(index).ForeColor [ = value ]

value 数值表达式,其值范围如下:
一个有效的颜色表达式如 RGB(255,255,255)

(14)FullPath 属性
返回指定节点的路径。

语法:
object.Nodes(index).FullPath

value 字符串表达式,其值范围如下:
节点标题的路径如本例程的第四个节的路径:属性\AppEARance 属性。

(15)Image 属性
用来设置或返回指定节点的图标。

语法
object.Nodes(index).Image [ = value ]

value 数值表达式,其值范围如下:
一个有效的ImageList控件的图标索引。

(16)Index 属性
返回指定节点的索引值

语法
object.Nodes(index).Index

也可这样引用,返回 TreeView 控件当前选中节点的索引.
Thisform.Tree.SelectedItem.Index.

(17)Item 属性
  Item 属性与Index一样可以指定 Nodes 集合中的某一节点。

访问格式如下:
  表单.TreeVeiw 名.Nodes.Item (index)

  例如,表示当前表单中Tree 控件的Nodes 的第三个节点为:
  Thisform.Tree.Nodes.Itme(3)

由于Item属性与Index功能完全一样,一般都使用Nodes(Index)属性.

(18)Key 属性
设置与返回指定节点的键值。

语法
object.Nodes(index).Key [ = value ]

value 唯一的字符串(节点的Key不能有重复,否则发生错误)

(19)LastSibling 属性
返回一个指定节点的同级节点的最后一个子节点的对象引用。

语法:
object.Nodes(index).LastSibling

(20)Next 属性
返回一个指定节点的下一个节点的对象引用。

语法:
object.Nodes(index).Next

如 Thisform.Tree.Nodes(1).Next.Key

(21)Parent 属性
返回一个指定节点的父节点的对象引用。

语法:
object.Nodes(index).Parent

如 Thisform.Tree.Nodes(5).Parent.Key

(22)Previous 属性
返回一个与指定节点同等级的上一个节点的对象引用。

语法:
object.Nodes(index).Previous

注意:
如果指定节点在与其同等级的节点中为第一个节点时,使用以上语句将产生错误

(23)Root 属性
返回根节点的引用(第一个节点)。

语法:
object.Nodes(index).Root

(24)Selected 属性
用来指定或返回 TreeView 控件指定的节点是选中状态。

语法
object.Nodes(index).Selected [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不选中
 .T. 选中

(25)Sorted 属性
用来指定或返回 TreeView 控件指定的节点是否按字母排序。

语法
object.Nodes(index).Sorted [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不排序
 .T. 按字母排序

(26)Tag 属性
存储你程序所需要的任何额外数据。

语法
object.Nodes(index).Tag [ = value ]

value 字符串表达式,其值范围如下:
 字符串型数据

(27)Text 属性
返回与设置指定节点的文本

语法
object.Nodes(index).Text [ = value ]

value 任意字符表达式

(28)Visible 属性
返回与设置 TreeView 控件是否可见

语法
object.Nodes(index).Visible [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 不可见
 .T. 可见

说明
很奇怪的是节点的 Visible 属性不能进行设定,设为.F.时显示类型不匹配,只能用来返回(但这又没什么用)

OLEDragMode 属性
指定一次拖动操作是如何开始的。设计和运行时可用。

语法
Object.OLEDragMode[= nValue]

设置
nValue

指定控件或对象如何处理 OLE 拖动操作。下表列出了 nValue 的设置。
设置 说明
0 人工(默认值)。 当试图拖动数据时,Visual FoxPro 不开始 OLE 拖动操作。要开始 OLE拖动操作,必须调用 OLEDrag 方法。如果不包含附加的拖动操作代码,将 OLEDragMode 设置为 0 为现有应用程序提供了向后兼容性(不支持 OLE 拖动)。
1 自动。 当试图拖动数据时,Visual FoxPro 自动开始 OLE 拖动操作。

OLEDropMode 属性
指定放落目标如何管理 OLE 放落操作。设计和运行时可用。

语法
Object.OLEDropMode[= nValue]

设置
nValue
指定控件或对象如何管理 OLE 放落操作。下表列出了 nValue 的设置。

常数 说明
0 DROP_DISABLED 禁止(默认值)。数据不能放落到控件或对象上,并且不发生放落目标事件。当鼠标指针位于控件或对象上时,显示不准放落鼠标指针。将 OLEDropMode 设置为 0 为现有应用程序提供了向后兼容性(不支持OLE 放落)。
1 DROP_ENABLED 启用。Visual FoxPro 允许将数据放落到控件或对象上,并且发生放落目标事件。
2 DROP_PASSTOCONTAINER 传递到容器。控件或对象就象禁止了 OLE 放落操作一样,并且数据被放落到控件或对象的容器中。为了接受数据,容器的 OLEDropMode属性必须设置为 1 或 2。如果容器的oledropmode 属性设置为 0,则显示不准放落鼠标指针。

Parent 属性
返回 TreeView 控件的父对象。

PathSeparator 属性
设置与返回 TreeView 控件节点FullPath(路径)的界定符号

语法
object.PathSeparator [ = value ]

value 字符串表达式,其值范围如下:
默认值为 \ 字符
一个有效的字符串表达式

说明
例如写Thisform.Tree.PathSeparator='*',那么节点的FullPath属性将返回 根节点名*子节点名*子节点名.

Scroll 属性
用来指定或返回 TreeView 控件是否具用滚动条。

语法
object.Scroll [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 不具备
 .T. 缺省值 具备

SelectedItem 属性
用来返回 TreeView 控件当前被选中节点的对象引用。

语法
object.SelectedItem

返回当前被选中的节点对象
说明
    例如Thisform.Tree.SelectedItem.Index可返回当前被选中节点的索引。如果当前 TreeView 控件没有被选中节点,以上语句将产生错误。可先使用VARTYPE(Thisform.Tree.SelectedItem) 函数来判定一下是否返回字母O,如果不是则当前 TreeView 控件没有被选中的节点。

SingleSel 属性
用来指定或返回 TreeView 控件的节点在鼠标单击时是否改变其展开与折叠的状态。

语法
object.SingleSel [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不改变
 .T. 改变,即所选节点的状态如果为展开,那么将会将其折叠。反之将会将之展开。

Sorted 属性
用来指定或返回 TreeView 控件的节点是否按字母排序。

语法
object.Sorted [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 缺省值 不排序
 .T. 按字母排序

Style 属性
返回或设置图形类型(图象、文本、+/- 号、直线)以及出现在 TreeView 控件中每一 Node 对象上的文本的类型。
?语法:
    object.Style [ = number]
?number 指定图形类型的整数,请参阅“设置值”中的描述。
?number 的设置值是:
??设置值 描述
??0 ??仅为文本。
??1 ??图象和文本。
??2 ??+/- 号和文本。
??3 ??+/- 号,图象和文本。
??4 ??直线和文本。
??5 ??直线,图象和文本。
??6 ??直线,+/- 号和文本。
??7 ??(缺省)直线,+/- 号,图象和文本。
??说明:若 Style 属性设置为包含直线的值,则 LineStyle 属性就确定了直线的外观。如果 Style 属性设置为不含直线的值,则 LineStyle 属性将被忽略。

Tag 属性
存储你程序所需要的任何额外数据。

语法
object.Tag [ = value ]

value 字符串表达式,其值范围如下:
 字符串型数据

Visible 属性
返回与设置 TreeView 控件是否可见

语法
object.Visible [ = value ]

value 逻辑表达式,其值范围如下:
 .F. 不可见
 .T. 缺省值 可见

Refresh 方法
用来刷新 TreeView 控件。

语法
object.Refresh

SetFocus 方法
用来使 TreeView 控件获得焦点。

语法
object.SetFocus

AfterLabelEdit 事件
该事件在用户编辑当前选择的节点标题之后发生。

参数
cancel,newstring
cancel   返回数值0 作用不详
newstring   返回修改后的标题

BeforeLabelEdit 事件
该事件在用户编辑当前选择的节点标题之前发生。

参数
cancel
cancel   返回数值0 作用不详

Click 事件
该事件在用户单击 TreeView 控件时发生。

Collapse 事件
该事件在用户折叠一个"-"节点时发生。

参数
node
node  当前发生折叠的节点

引用方法
node.Key

活到老,学到老! http://www. E-mail:hu-jj@
2008-01-27 21:26
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
得分:0 
唉,比较惭愧,搞了几天都没搞定。郁闷
2008-01-31 13:27
yvhusrwg
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-10-16
得分:0 
dddddddddddddddd
2008-02-25 16:13
ILoveVFD
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:218
专家分:147
注 册:2015-5-2
得分:0 
版主介绍的好详细
2015-05-13 16:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-198772-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.135344 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved