TreeView 控件Word格式.docx
《TreeView 控件Word格式.docx》由会员分享,可在线阅读,更多相关《TreeView 控件Word格式.docx(41页珍藏版)》请在冰点文库上搜索。
要在你的应用程序中使用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
第一个。
该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.
DeclareNodevariable.
Firstnodewith'
Root'
astext.
SetnodX=TreeView1.Nodes.Add(,,"
r"
"
Root"
)
ThisnextnodeisachildofNode1("
).
SetnodX=TreeView1.Nodes.Add("
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。
TreeView1.Style=tvwTreelinesText'
Linesandtext.DimnodXAsNode
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
Can'
treplace"
TreeView1.SelectedItem.Text&
_"
with"
NewString
下面的例子给一个ListView控件增加了3个ListItem对象。
当你试图编辑ListItem对象的标签时,就检查对象的索引。
如果是1,则取消该操作。
要使用本例,在一个窗体上放置一个ListView控件,将下面的代码拷贝到窗体的Declarations段中。
运行本例,点击任一ListItem对象的标签两次进行编辑,输入一些文本,按下ENTER。
PrivateSubForm_Load()DimitmXAsListItem
SetitmX=ListView1.ListItems.Add(,,"
Item1"
)SetitmX=ListView1.ListItems.Add(,,"
Item2"
Item3"
PrivateSubListView1_AfterLabelEdit_(CancelAsInteger,NewStringAsString)
IfcurrentListItem'
IfListView1.SelectedItem.Index=1Then
ListView1.SelectedItem.Text&
BeforeLabelEdit事件(ListView,TreeView控件)
当用户试图编辑当前选择的Node对象或ListItem对象的标签时产生该事件。
PrivateSubobject_BeforeLabelEdit(cancelAsInteger)BeforeLabelEdit事件的语法有如下几个部分:
任何非0整数将取消该操作。
只有当LabelEdit属性设置为0(Automatic)或调用了StartLabelEdit方法时才产生AfterLabelEdit和BeforeLabelEdit事件。
BeforeLabelEdit事件在标准的Click事件之后产生。
要开始编辑一个标签,用户必须先点击该对象,然后再点击一次进行编辑。
BeforeLabelEdit事件在第二次点击之后产生。
要确定正在编辑哪个对象的标签,使用SelectedItem属性。
下面的例子在允许编辑之前检查所选择的Node对象的索引。
如果索引为1,则取消标签动作。
PrivateSubTreeView1_BeforeLabelEdit(CancelAsInteger)IfTreeView1.SelectedItem.Index=1Then
Cancel=True'
Canceltheoperation
Node对象,Nodes集合,AfterLabelEdit事件(ListView,TreeView控件),LabelEdit属性,SelectedItem属性(ActiveX控件),StartLabelEdit方法,ListItem对象,ListItems集合,Click事件,Click事件(ActiveX控件)。
运行本例,试着编辑对象的标签。
PrivateSubForm_Load()DimnodXAsNode
SetnodX=TreeView1.Nodes.Add(,,"
P1"
"
parent1"
SetnodX=TreeView1.Nodes.Add("
P1,tvwChild,,"
Child1"
)SetnodX=TreeView1.Nodes.Add("
tvwChild,,"
Child2"
Makesureallnodesarevisible.
PrivateSubTreeView1_BeforeLabelEdit(CancelAsInteger)
checkSelectedmode'
sindex,ifitis1,thenCanceltheeditingoperation
tedit"
+TreeView1.SelectedItem.Text
运行本例,试着编辑标签。
SetnodX=ListView1.ListItems.Add(,,"
)SetnodX=ListView1.ListItems.Add(,,"
PrivateSubListView1_BeforeLabelEdit(CancelAsInteger)
checkSelecteditem’sindex.ifitis1,thenCanceltheeditingoperation
+ListView1.SelectedItem.Text
Cancel=true
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