TreeView 控件.docx
- 文档编号:9969548
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:41
- 大小:40.91KB
TreeView 控件.docx
《TreeView 控件.docx》由会员分享,可在线阅读,更多相关《TreeView 控件.docx(41页珍藏版)》请在冰豆网上搜索。
TreeView控件
TreeView控件
一个TreeView控件显示Node对象的等级体系结构,每个Node对象包含了一个标签和可选的点位图。
TreeView控件通常用于显示文档头、索引中的条目、磁盘上的文件和目录或者可以显示为等级结构的各种其他信息。
语法TreeView说明
在创建了一个TreeView控件之后,你可以设置Node对象的属性和调用其方法增加、删除或者操纵Node对象。
你可以编程展开或收缩Node节点以便显示或隐藏所有的子节点。
3个事件Collapse,Expand和NodeClick提供了在程序中使用的功能。
使用Root,Parent,Child,FirstSibling,Next,Previous和LastSibling属性可以检取Node对象的引用,从而在程序代码中浏览节点树。
用户也可以使用键盘
来浏览节点。
UPARROW和DOWNARROW键循环展开所有的Node对象。
Node对象的选择从左到右,从上到下。
在树的根部,选择则跳到树头,如果有必要就滚动窗口。
RIGHTARROW和LEFTARROW键也可以跳过展开的Node节点,但如果按下RIGHTARROW键时选择了一个未展开的Node对象,则该对象就展开。
第二次按键将选择移到下一个Node对象。
相反,如果按下LEFTARROW键时展开的Node节点有焦点,则收缩该Node对象。
如果用户按下了ANSI键,则焦点将跳到最近的以该ANSI字符开头的Node对象节点。
后续的按键将导致选择轮回所有以该字符开头的展开节点。
TreeView控件的外观有几种选择。
Node对象可以表现为文本,点位图,线条和加减号的8种组合之一。
TreeView控件使用ImageList属性指定的ImageList控件保存在Node对象中使用的点位图和图标。
一个TreeView控件一次只能使用一个ImageList。
这意味着当TreeView控件的Style属性设置为显示图像的风格时,TreeView控件中的每个成员旁边都显示一个等大的图像。
发布须知:
TreeView控件是MSCOMCTL32.OCX文件中ActiveX控件的一部分。
要在你的应用程序中使用TreeView控件,你必须将MSCOMCTL32.OCX文件加入到你的工程文件中。
在发布你的应用程序时,应在用户的MicrosoftWindowsSystem或System32目录下安装MSCOMCTL32.OCX文件。
属性
DropHighlight属性(ListView,TreeView控件),Indentation属性,LabelEdit属性,LineStyle属性,Nodes属性,PathSeparator属性(TreeView控件),SelectedItem属性(ActiveX控件),Sorted属性(TreeView控件),Style属性
(TreeView控件),Checkboxes属性,FullRowSelect属性,Scroll属性,SingleSel
属性,HotTracking属性,TabIndex属性,Tag属性,Visible属性,DragIcon属性,DragMode属性,CausesValidation属性,MouseIcon属性,TabStop属性,
HelpContextID属性,Name属性,Parent属性,Container属性,ToolTipText属
性,WhatsThisHelpID属性,OLEDragMode属性(ActiveX控件),OLEDropMode
属性(ActiveX控件),Height,Width属性(ActiveX控件),Index属性(ActiveX
控件),Left,Top属性(ActiveX控件),Object属性(ActiveX控件),Appearance属性(ActiveX控件),BorderStyle属性(ActiveX控件),Enable属性(ActiveX控件),Font属性(ActiveX控件),HideSelection属性(ActiveX控件),hWnd
属性(ActiveX控件),MousePointer属性(ActiveX控件),ImageList属性(ActiveX
控件)。
方法
GetVisibleCount方法,HitTest方法(ListView,TreeView控件),StartLabelEdit
方法,SetFocus方法,Drag方法,Move方法,ZOrder方法,ShowWhatsThis
方法,OLEDrag方法(ActiveX控件),Refresh方法(ActiveX控件)。
事件
Collapse事件(TreeView控件),AfterLabelEdit事件(ListView,TreeView控件),BeforeLabelEdit事件(ListView,TreeView控件),Expand事件(TreeView控件),NodeClick事件,NodeCheck事件,DragDrop事件,DragOver事件,GotFocus事件,LostFocus事件,MouseDown,MouseUp事件,MouseMove方法,Validate事件,OLECompleteDrag事件(ActiveX控件),OLEDragDrop事件(ActiveX控件),OLEDragOver事件(ActiveX控件),OLEGiveFeedback事件(ActiveX控件),OLESetData事件(ActiveX控件),OLEStartDrag事件(ActiveX控件),Click事件(ActiveX控件),DblClick事件(ActiveX控件),KeyDown,KeyUp事件(ActiveX控件),KeyPress事件(ActiveX控件)。
请参阅
TreeView控件常量,Node对象,Nodes集合,Child属性(Node对象),FirstSibling属性,LastSibling属性,Next属性,NodeClick事件,ImageList控件,使用TreeView控件。
Add方法(Nodes集合)
给TreeView控件中的Nodes集合增加一个Node对象。
应用于TreeView控件。
语法
object.Add(relative,relationship,key,text,image,selectedimage)Add方法的语法有如下几个部分:
部分描述
object一个TreeView控件的对象表达式
relative可选参数。
已存在的Node对象的索引或键值。
新节点与该已存在的节点之间的关系在下一个参数relationship中
relationship可选参数。
指定Node对象的相对位置关系,如“设置”中所示
key可选参数。
使用Item方法检取Node对象的唯一字符串
续表
部分描述
text在Node中显示的字符串
image可选参数。
与ImageList控件关联的图像索引
selectedimage可选参数。
当Node对象选中时,所显示的与ImageList控件关联的图像索引
设置
relationship值的设置如下:
常量
值
描述
TvwFirst
0
第一个。
该Node节点放在relative命名的所有同级节点的前面
TvwLast
1
最后一个。
该Node节点放在relative命名的所有同级节点的最
后。
后续增加的节点可以在该节点之后
TvwNext
2
(缺省)下一个。
该Node节点放置在relative命名的节点之后
TvwPrevious
3
前一个。
该Node节点放置在relative命名的节点之前
TvwChild
4
子节点。
该Node节点是relative命名节点的子节点
注意:
如果在relative参数中没有指定Node对象,则该对象放在顶级节点中的最后位置。
说明
Nodes集合是基于1的集合。
增加一个Node对象时就给其分配了索引值,保存在该Node对象的Index
属性中。
新成员的该属性值也是Nodes集合的Count属性值。
因为Add方法返回新增Node对象的引用,所以设置新Node对象属性最方便的方法就是使用该引用值。
下面的例子增加了几个属性相同的Node对象:
DimnodXAsNode'Declaretheobjectvariable.DimIasInteger'Declareacountervariable.
ForI=1to4
SetnodX=TreeView1.Nodes.Add(,,,"Node"&Cstr(i))
'Usethereferencetosetotherproperties,suchasEnabled.nodX.Enabled=True
'Setimagepropertytoimage3inanassociatedImageList.nodX.ExpandedImage=3
NextI
请参阅
Item属性,Item方法,ImageList控件,Count属性(VB集合),Index属
性(ActiveX控件),Key属性(ActiveX控件)。
示例
下面的例子给一个TreeView控件增加了两个Node对象。
要使用本例,在一个窗体上放置一个TreeView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,点击Node对象展开它。
PrivateSubForm_Load()
'SetTreeviewcontrolproperties.TreeView1.LineStyle=tvwRootLines'Linestyle1
'AddNodeobjects.
DimnodXAsNode'DeclareNodevariable.
'Firstnodewith'Root'astext.
SetnodX=TreeView1.Nodes.Add(,,"r","Root")
'ThisnextnodeisachildofNode1("Root").
SetnodX=TreeView1.Nodes.Add("r",tvwChild,"child1","Child")EndSub
AfterLabelEdit事件(ListView,TreeView控件)
当用户编辑当前选择的Node对象或ListItem对象的标签时产生该事件。
应用于
TreeView控件,Listview控件。
语法
PrivateSubobject_AfterLabelEdit(cancelAsInteger,newstringAsString)AfterLabelEdit事件的语法有如下几个部分:
部分描述
object在“应用于”中指定的对象表达式
cancel一个整数,确定标签操作是否被取消。
任何非0整数将取消该操作。
也接受布尔值
newstring用户输入的字符串;如果用户取消了操作,则是Null
说明
只有当LabelEdit属性设置为0或调用了StartLabelEdit方法时才产生
AfterLabelEdit和BeforeLabelEdit事件。
当用户编辑完标签点击另一个Node或ListItem对象或按下ENTER键时产生AfterLableEdit事件。
要取消标签编辑操作,将cancel设置为非0数或True。
如果取消了标签编辑操作,则恢复前一个标签。
在取消标签编辑操作之前,可以使用newstring参数测试取消条件。
例如,下面的代码在newstring是数字时取消标签编辑操作:
PrivateSubTreeView1_AfterLabelEdit(CancelAsInteger,NewStringAsString)IfIsNumeric(NewString)Then
MsgBox"Nonumbersallowed"Cancel=True
EndIf
EndSub
请参阅
Node对象,Nodes集合,BeforeLabelEdit事件(ListView,TreeView控件),
LabelEdit属性,NodeClick事件,StartLabelEdit方法,ListItem对象,ListItems
集合。
示例
下面的例子给一个TreeView控件增加了3个Node对象。
当你试图编辑Node对象的标签时,就检查该对象的索引。
如果是1,则取消该编辑操作。
要使用本例,在一个窗体上放置一个TreeView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,点击顶级的Node对象的标签两次进行编辑,输入一些文本,按下ENTER。
PrivateSubForm_Load()
TreeView1.Style=tvwTreelinesText'Linesandtext.DimnodXAsNode
SetnodX=TreeView1.Nodes.Add(,,,"Parent")
SetnodX=TreeView1.Nodes.Add(1,tvwChild,,"Child1")SetnodX=TreeView1.Nodes.Add(1,tvwChild,,"Child2")nodX.EnsureVisible'Makesureallnodesarevisible.EndSub
PrivateSubTreeView1_AfterLabelEdit_(CancelAsInteger,NewStringAsString)
'Ifcurrentnode'sindexis1,editiscanceled.
IfTreeView1.SelectedItem.Index=1Then
Cancel=True
MsgBox"Can'treplace"&TreeView1.SelectedItem.Text&_"with"&NewString
EndIf
EndSub
下面的例子给一个ListView控件增加了3个ListItem对象。
当你试图编辑ListItem对象的标签时,就检查对象的索引。
如果是1,则取消该操作。
要使用本例,在一个窗体上放置一个ListView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,点击任一ListItem对象的标签两次进行编辑,输入一些文本,按下ENTER。
PrivateSubForm_Load()DimitmXAsListItem
SetitmX=ListView1.ListItems.Add(,,"Item1")SetitmX=ListView1.ListItems.Add(,,"Item2")SetitmX=ListView1.ListItems.Add(,,"Item3")
EndSub
PrivateSubListView1_AfterLabelEdit_(CancelAsInteger,NewStringAsString)
'IfcurrentListItem'sindexis1,editiscanceled.
IfListView1.SelectedItem.Index=1Then
Cancel=True
MsgBox"Can'treplace"&ListView1.SelectedItem.Text&_"with"&NewString
EndIf
EndSub
BeforeLabelEdit事件(ListView,TreeView控件)
当用户试图编辑当前选择的Node对象或ListItem对象的标签时产生该事件。
应用于
TreeView控件,Listview控件。
语法
PrivateSubobject_BeforeLabelEdit(cancelAsInteger)BeforeLabelEdit事件的语法有如下几个部分:
部分描述
object在“应用于”中指定的对象表达式
cancel一个整数,确定标签操作是否被取消。
任何非0整数将取消该操作。
也接受布尔值
说明
只有当LabelEdit属性设置为0(Automatic)或调用了StartLabelEdit方法时才产生AfterLabelEdit和BeforeLabelEdit事件。
BeforeLabelEdit事件在标准的Click事件之后产生。
要开始编辑一个标签,用户必须先点击该对象,然后再点击一次进行编辑。
BeforeLabelEdit事件在第二次点击之后产生。
要确定正在编辑哪个对象的标签,使用SelectedItem属性。
下面的例子在允许编辑之前检查所选择的Node对象的索引。
如果索引为1,则取消标签动作。
PrivateSubTreeView1_BeforeLabelEdit(CancelAsInteger)IfTreeView1.SelectedItem.Index=1Then
Cancel=True'Canceltheoperation
EndIf
EndSub
请参阅
Node对象,Nodes集合,AfterLabelEdit事件(ListView,TreeView控件),LabelEdit属性,SelectedItem属性(ActiveX控件),StartLabelEdit方法,ListItem对象,ListItems集合,Click事件,Click事件(ActiveX控件)。
示例
下面的例子给一个TreeView控件增加了3个Node对象。
当你试图编辑Node对象的标签时,就检查该对象的索引。
如果是1,则取消该编辑操作。
要使用本例,在一个窗体上放置一个TreeView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,试着编辑对象的标签。
PrivateSubForm_Load()DimnodXAsNode
SetnodX=TreeView1.Nodes.Add(,,"P1","parent1")
SetnodX=TreeView1.Nodes.Add("P1,tvwChild,,"Child1")SetnodX=TreeView1.Nodes.Add("P1",tvwChild,,"Child2")nodX.EnsureVisible'Makesureallnodesarevisible.
EndSub
PrivateSubTreeView1_BeforeLabelEdit(CancelAsInteger)
'checkSelectedmode'sindex,ifitis1,thenCanceltheeditingoperation
IfTreeView1.SelectedItem.Index=1Then
MsgBox"Can'tedit"+TreeView1.SelectedItem.Text
Cancel=True
EndIf
EndSub
下面的例子给一个ListView控件增加了3个ListItem对象。
当你试图编辑ListItem对象的标签时,就检查对象的索引。
如果是1,则取消该操作。
要使用本例,在一个窗体上放置一个ListView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,试着编辑标签。
PrivateSubForm_Load()DimitmXAsListItem
SetnodX=ListView1.ListItems.Add(,,"Item1")SetnodX=ListView1.ListItems.Add(,,"Item2")SetnodX=ListView1.ListItems.Add(,,"Item3")EndSub
PrivateSubListView1_BeforeLabelEdit(CancelAsInteger)
'checkSelecteditem’sindex.ifitis1,thenCanceltheeditingoperation
IfListView1.SelectedItem.Index=1Then
Cancel=True
MsgBox"Can'tedit"+ListView1.SelectedItem.Text
Cancel=true
EndIf
EndSub
Child属性(Node对象)
返回TreeView控件中一个Node对象的第一个子节点。
应用于
TreeView控件,Node对象,Nodes集合。
语法
object.Child
object是在“应用于”中指定的对象表达式。
说明
Child,FirstSibling,LastSibling,Previous,Parent,Next和Root属性返回另一个Node对象的索引。
因此,你可以同时引用和操作一个Node对象,如下:
WithTreeView1.Nodes(TreeView1.SelectedItem.Index).Child
.Text="Newtext"
.Key="Newkey"
.SelectedImage=3
EndWith
也可以设置一个对象变量引用Node对象,如下:
DimNodChildAsNode
'Getareferencetothechildoftheselectednode.
SetNodChild=TreeVie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TreeView 控件
![提示](https://static.bdocx.com/images/bang_tan.gif)