古詩詞大全網 - 古詩大全 - VB中的treeview和listview控件如何使用?

VB中的treeview和listview控件如何使用?

使用 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《程序員指南》。