VB中的treeview和listview控件如何使用?
1个回答
展开全部
使用 TreeView 控件
TreeView
TreeView 控件可以用来显示具有层次结构的数据,例如组织树、索引项、磁盘中的文件和目录等。
图 2.40 典型的 TreeView
可能的用途
创建用户可以操作的组织树。
创建能够显示至少两层或更多层的数据库树。
设置 Node 对象属性
“树”由一些层叠的“节点”分支构成,每个节点通常包括图象(用 Image 属性设置)和标签(由 Text 属性设置)。节点的图象由与 TreeView 控件相关联的 ImageList 控件提供。关于与其它控件共同使用 ImageList 控件的更多信息,请参阅“使用 ImageList 控件”。
节点可被展开或折回,这取决于它是否有子节点,即从它出发的节点。在最上层是“根”节点,每个“根”节点可以具有任何数目的子节点。节点的总数没有限制(除非受到机器资源的限制)。图 2.41 显示了具有两个根节点的树。其中“Root 1”有三个子节点,“Child 3”自己又有一个子节点。“Root 2”有子节点,由“+”号指出,但没有展开。
图 2.41 根和子节点
树中的每个节点实际上是可编程的 Node 对象,它属于 Nodes 集合。同在其它集合中一样,集合的每个成员具有唯一的 Index 和 Key 属性,通过这些属性可以访问相应节点的其它属性。例如,下面的代码用特定节点的 Index (“7”) 设置其 Image 和 Text 属性:
tvwMyTree.Nodes(7).Image = "closed"
tvwMyTree.Nodes(7).Text = "IEEE"
然而,如果唯一的键被赋给了该节点,例如“7 ID”,那么上述代码可被改写如下:
tvwMyTree.Nodes("7 ID").Image = "closed"
tvwMyTree.Nodes("7 ID").Text = "IEEE"
节点间的关系和对关系节点的引用
每个节点可以是子节点,也可以是父节点,这取决于它与其它节点之间的关系。Node 对象具有一些属性,可以用来返回子节点或父节点的各种信息。例如,下面的代码用 Children 属性返回某个节点的子节点个数。
MsgBox tvwMyTree.Nodes(10).Children
然而,另外一些属性与 Children 属性不同,它们不返回信息,但返回对其它节点对象的引用。例如,Parent 属性返回对特定节点(只要该节点不是根节点)的父节点的引用。利用该引用,可以调用适用于 Node 对象的任何方法或设置属性来管理其父节点。例如,下面的代码返回父节点的 Text 和 Index 属性:
MsgBox tvwMyTree.Nodes(10).Parent.Text
MsgBox tvwMyTree.Nodes(10).Parent.Index
提示 使用 Set 语句处理 Node 类型的对象,以管理对其它 Node 对象的引用。例如,下面的代码将 Node 对象变量设置为 Parent 属性返回的引用。然后用该对象变量返回相关节点的属性:
Dim tempNode As Node '声明对象变量。
'将对象变量设置为返回的引用。
Set tempNode = tvwMyTree.Nodes(10).Parent
MsgBox tempNode.Text '返回父节点的 Text。
MsgBox tempNode.Index '返回父节点的 Index。
向 Nodes 集合中添加 Node 对象
要将 Node 添加到树中,可以用 Add 方法(Nodes 集合)。该方法包括两个参数,relative 和 relationship,它们确定节点被加到何处。第一个参数 relative 指定节点名称,第二个参数 relationship 指定新加入的节点与名为 relative 的节点之间的关系。
例如,下面的代码添加名为“11 node”的节点,并使其成为名为“7 node”的节点的子节点。固有常数 tvwChild 指出新节点是前一参数所指定的节点的子节点。第三个参数设置新节点的 Key 属性。
tvwMyTree.Nodes.Add "7 node", tvwChild, "11 node"
其它可能的关系包括:
常数 值 描述
tvwLast 1 该 Node 被放在所有与 relative 节点同级的节点之后。
tvwNext 2 该 Node 放在名为 relative 的节点之后。
tvwPrevious 3 该 Node 放在名为 relative 的节点之前。
tvwChild 4 该 Node 成为名为 relative 节点的子节点。
例如,假设已存在三个节点,如果想将第四个节点放在第二个和第三个节点之间,则代码如下:
'假设第二个节点的 Key 值为“2 node”。
tvwMyTree.Nodes.Add "2 node", tvwNext
Add 方法的其它参数是 key、text 和 image。用这些参数,可以在创建 Node 对象时,为其赋予 Key、Text 和 Image 属性。
详细信息 关于 Nodes 集合 Add 方法的更多信息,请在索引搜索中键入“Add 方法”并单击“Add 方法 (Nodes 集合)”,参阅“Add 方法”。
添加节点的第二个方法是:声明 Node 类型的对象变量,然后使用带 Add 方法的 Set 语句。该 Set 语句将该对象变量设置为新节点。然后就可以用该对象变量设置节点的属性,如下所示:
Dim nodX As Node
Set nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)
nodX.Key = "11 node"
nodX.Text = "IEEE"
nodX.Image = "closed"
提示 使用带 Add 的 Set 语句,可使代码可读性强、容易调试。然而,如果使用 Add 方法及其参数添加节点,代码速度更快。
Listview
ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。
语法
ListView
说明
可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:
大(标准)图标
小图标
列表
报表
View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。
ListView 控件包括 ListItem 和 ColumnHeader 对象。ListItem 对象定义 ListView 控件中项目的各种特性,诸如:
项目的简要描述。
由 ImageList 控件提供的与项目一起出现的图标。
附加的文本片段,称作子项目,它们与显示在报表视图中的 ListItem 对象关联。
可以使用 HideColumnHeaders 属性决定是否在 ListView 控件中显示列标头。列标头可以在设计时添加,也可以在运行时添加。设计时,使用 ListView“控件属性”对话框的“列首”选项卡添加列标头。运行时,使用 Add 方法添加 ColumnHeader 对象到 ColumnHeaders 集合中。
发行注意 ListView 控件是 Mscomctl.ocx 文件中一组 ActiveX 控件的一部分。若要在应用程序中使用 ListView 控件,则必须将 Mscomctl.ocx 文件添加到工程中。当发行应用程序时,请将 Mscomctl.ocx 文件安装到用户的 Microsoft Windows System 或 System32 目录下。关于如何将 ActiveX 控件添加到 Visual Basic 工程的详细信息,请参阅 Visual Basic《程序员指南》。
TreeView
TreeView 控件可以用来显示具有层次结构的数据,例如组织树、索引项、磁盘中的文件和目录等。
图 2.40 典型的 TreeView
可能的用途
创建用户可以操作的组织树。
创建能够显示至少两层或更多层的数据库树。
设置 Node 对象属性
“树”由一些层叠的“节点”分支构成,每个节点通常包括图象(用 Image 属性设置)和标签(由 Text 属性设置)。节点的图象由与 TreeView 控件相关联的 ImageList 控件提供。关于与其它控件共同使用 ImageList 控件的更多信息,请参阅“使用 ImageList 控件”。
节点可被展开或折回,这取决于它是否有子节点,即从它出发的节点。在最上层是“根”节点,每个“根”节点可以具有任何数目的子节点。节点的总数没有限制(除非受到机器资源的限制)。图 2.41 显示了具有两个根节点的树。其中“Root 1”有三个子节点,“Child 3”自己又有一个子节点。“Root 2”有子节点,由“+”号指出,但没有展开。
图 2.41 根和子节点
树中的每个节点实际上是可编程的 Node 对象,它属于 Nodes 集合。同在其它集合中一样,集合的每个成员具有唯一的 Index 和 Key 属性,通过这些属性可以访问相应节点的其它属性。例如,下面的代码用特定节点的 Index (“7”) 设置其 Image 和 Text 属性:
tvwMyTree.Nodes(7).Image = "closed"
tvwMyTree.Nodes(7).Text = "IEEE"
然而,如果唯一的键被赋给了该节点,例如“7 ID”,那么上述代码可被改写如下:
tvwMyTree.Nodes("7 ID").Image = "closed"
tvwMyTree.Nodes("7 ID").Text = "IEEE"
节点间的关系和对关系节点的引用
每个节点可以是子节点,也可以是父节点,这取决于它与其它节点之间的关系。Node 对象具有一些属性,可以用来返回子节点或父节点的各种信息。例如,下面的代码用 Children 属性返回某个节点的子节点个数。
MsgBox tvwMyTree.Nodes(10).Children
然而,另外一些属性与 Children 属性不同,它们不返回信息,但返回对其它节点对象的引用。例如,Parent 属性返回对特定节点(只要该节点不是根节点)的父节点的引用。利用该引用,可以调用适用于 Node 对象的任何方法或设置属性来管理其父节点。例如,下面的代码返回父节点的 Text 和 Index 属性:
MsgBox tvwMyTree.Nodes(10).Parent.Text
MsgBox tvwMyTree.Nodes(10).Parent.Index
提示 使用 Set 语句处理 Node 类型的对象,以管理对其它 Node 对象的引用。例如,下面的代码将 Node 对象变量设置为 Parent 属性返回的引用。然后用该对象变量返回相关节点的属性:
Dim tempNode As Node '声明对象变量。
'将对象变量设置为返回的引用。
Set tempNode = tvwMyTree.Nodes(10).Parent
MsgBox tempNode.Text '返回父节点的 Text。
MsgBox tempNode.Index '返回父节点的 Index。
向 Nodes 集合中添加 Node 对象
要将 Node 添加到树中,可以用 Add 方法(Nodes 集合)。该方法包括两个参数,relative 和 relationship,它们确定节点被加到何处。第一个参数 relative 指定节点名称,第二个参数 relationship 指定新加入的节点与名为 relative 的节点之间的关系。
例如,下面的代码添加名为“11 node”的节点,并使其成为名为“7 node”的节点的子节点。固有常数 tvwChild 指出新节点是前一参数所指定的节点的子节点。第三个参数设置新节点的 Key 属性。
tvwMyTree.Nodes.Add "7 node", tvwChild, "11 node"
其它可能的关系包括:
常数 值 描述
tvwLast 1 该 Node 被放在所有与 relative 节点同级的节点之后。
tvwNext 2 该 Node 放在名为 relative 的节点之后。
tvwPrevious 3 该 Node 放在名为 relative 的节点之前。
tvwChild 4 该 Node 成为名为 relative 节点的子节点。
例如,假设已存在三个节点,如果想将第四个节点放在第二个和第三个节点之间,则代码如下:
'假设第二个节点的 Key 值为“2 node”。
tvwMyTree.Nodes.Add "2 node", tvwNext
Add 方法的其它参数是 key、text 和 image。用这些参数,可以在创建 Node 对象时,为其赋予 Key、Text 和 Image 属性。
详细信息 关于 Nodes 集合 Add 方法的更多信息,请在索引搜索中键入“Add 方法”并单击“Add 方法 (Nodes 集合)”,参阅“Add 方法”。
添加节点的第二个方法是:声明 Node 类型的对象变量,然后使用带 Add 方法的 Set 语句。该 Set 语句将该对象变量设置为新节点。然后就可以用该对象变量设置节点的属性,如下所示:
Dim nodX As Node
Set nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)
nodX.Key = "11 node"
nodX.Text = "IEEE"
nodX.Image = "closed"
提示 使用带 Add 的 Set 语句,可使代码可读性强、容易调试。然而,如果使用 Add 方法及其参数添加节点,代码速度更快。
Listview
ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。
语法
ListView
说明
可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:
大(标准)图标
小图标
列表
报表
View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。
ListView 控件包括 ListItem 和 ColumnHeader 对象。ListItem 对象定义 ListView 控件中项目的各种特性,诸如:
项目的简要描述。
由 ImageList 控件提供的与项目一起出现的图标。
附加的文本片段,称作子项目,它们与显示在报表视图中的 ListItem 对象关联。
可以使用 HideColumnHeaders 属性决定是否在 ListView 控件中显示列标头。列标头可以在设计时添加,也可以在运行时添加。设计时,使用 ListView“控件属性”对话框的“列首”选项卡添加列标头。运行时,使用 Add 方法添加 ColumnHeader 对象到 ColumnHeaders 集合中。
发行注意 ListView 控件是 Mscomctl.ocx 文件中一组 ActiveX 控件的一部分。若要在应用程序中使用 ListView 控件,则必须将 Mscomctl.ocx 文件添加到工程中。当发行应用程序时,请将 Mscomctl.ocx 文件安装到用户的 Microsoft Windows System 或 System32 目录下。关于如何将 ActiveX 控件添加到 Visual Basic 工程的详细信息,请参阅 Visual Basic《程序员指南》。
参考资料: VB帮助文档
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询