vb.net樹控件的使用的簡(jiǎn)單介紹

vb中的treeview控件如何使用

使用控件需要知道,要想獲得樹狀結(jié)構(gòu)的每個(gè)層次中的子文件夾,必須使用遞歸過程來完成,下面所示代碼所執(zhí)行的工作是:

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括高平網(wǎng)站建設(shè)、高平網(wǎng)站制作、高平網(wǎng)頁制作以及高平網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,高平網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到高平省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

先把一個(gè)已經(jīng)路徑的文件夾添加到樹狀結(jié)構(gòu)中,然后再遍歷它的子文件夾:

'添加文件夾

Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)

Dim i As Integer

Dim node As New TreeNode

'先添加本目錄,從文件夾路徑分析出文件夾名稱

node.Text = Strings.Replace(strPath, strFatherPath "\", "", , 1)

'為單個(gè)節(jié)點(diǎn)指定節(jié)點(diǎn)未被選中時(shí)顯示的圖標(biāo)

node.ImageIndex = 1

'為單個(gè)節(jié)點(diǎn)指定節(jié)點(diǎn)被選中時(shí)顯示的圖標(biāo)

node.SelectedImageIndex = 2

nodeFather.Nodes.Add(node)

Application.DoEvents()

Try

Dim str() As String = iDir.GetDirectories(strPath)

'遍歷該目錄的子文件夾

For i = 0 To str.GetUpperBound(0)

AddDirectory(strPath, str(i), node)

Next

Catch ex As Exception

Debug.WriteLine(ex.Message)

End Try

node = Nothing

End Sub

然后在按鈕的Click事件中添加代碼,用于添加樹狀結(jié)構(gòu)的頂層以及調(diào)用遍歷子文件的遞歸過程,詳細(xì)代碼如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim node As New TreeNode

'先把C盤添加到樹中

TreeView1.Nodes.Clear()

node.ImageIndex = 0

node.Text = "本地磁盤 C:"

node.SelectedImageIndex = -1

TreeView1.Nodes.Add(node)

Dim i As Integer

'獲取C:盤根目錄下的文件夾

Dim str() As String = iDir.GetDirectories("C:\")

For i = 0 To str.GetUpperBound(0)

'調(diào)用遍歷過程

AddDirectory("C:", str(i), node)

Next

node = Nothing

End Sub

VB.NET中treeview的使用

Nodes 集合包含分配給 TreeView 控件的所有 TreeNode 對(duì)象。此集合中的樹節(jié)點(diǎn)稱作根樹節(jié)點(diǎn)。隨后添加到根樹節(jié)點(diǎn)上的任何樹節(jié)點(diǎn)稱作子節(jié)點(diǎn)。由于每個(gè) TreeNode 都可以包含其他 TreeNode 對(duì)象的集合,您可能會(huì)在循環(huán)訪問集合時(shí)覺得很難確定自己在樹結(jié)構(gòu)中的位置。您可以使用 PathSeparator 字符串值來分析 TreeNode.FullPath 字符串,以確定 TreeNode 標(biāo)簽的起始和終止位置。

可以在樹節(jié)點(diǎn)旁顯示圖像,方法是將一個(gè) ImageList 分配給 ImageList 屬性,然后通過引用 Image 在 ImageList 中的索引值來分配該 Image。使用下面的屬性分配圖像:

將 ImageIndex 屬性設(shè)置為當(dāng)樹節(jié)點(diǎn)未選定時(shí)所顯示的 Image 的索引值。

將 SelectedImageIndex 屬性設(shè)置為當(dāng)樹節(jié)點(diǎn)被選定時(shí)要顯示的 Image 的索引值。

ImageIndex 和 SelectedImageIndex 屬性值所引用的圖像是所有分配給 Nodes 集合的樹節(jié)點(diǎn)顯示的默認(rèn)圖像。每個(gè)樹節(jié)點(diǎn)都可以通過設(shè)置 TreeNode.ImageIndex 和 TreeNode.SelectedImageIndex 屬性來取代默認(rèn)的圖像。

樹節(jié)點(diǎn)可以展開,以顯示下一級(jí)子樹節(jié)點(diǎn)。用戶可以在 TreeNode 旁顯示加號(hào) (+) 按鈕時(shí)通過單擊加號(hào) (+) 按鈕來展開 TreeNode,或者可以通過調(diào)用 TreeNode.Expand 方法來展開 TreeNode。若要展開 Nodes 集合中的所有子樹節(jié)點(diǎn)級(jí)別,請(qǐng)調(diào)用 ExpandAll 方法。若要折疊子 TreeNode 級(jí)別,可以調(diào)用 TreeNode.Collapse 方法,也可以在 TreeNode 旁顯示減號(hào) (-) 按鈕時(shí)按減號(hào) (-) 按鈕。還可以通過調(diào)用 TreeNode.Toggle 方法在展開和折疊狀態(tài)之間切換。

樹節(jié)點(diǎn)可以選擇性地顯示復(fù)選框。若要顯示復(fù)選框,請(qǐng)將 TreeView 的 CheckBoxes 屬性設(shè)置為 true。對(duì)于處于選中狀態(tài)的樹節(jié)點(diǎn),Checked 屬性設(shè)置為 true。

注意

從 BeforeCheck 或 AfterCheck 事件內(nèi)設(shè)置 TreeNode.Checked 屬性將導(dǎo)致該事件被多次引發(fā)并可能產(chǎn)生意外行為。例如,您可以在遞歸更新子節(jié)點(diǎn)時(shí)在事件處理程序中設(shè)置 Checked 屬性,以便用戶不必逐個(gè)展開并選中每個(gè)節(jié)點(diǎn)。如果未將 TreeViewEventArgs 的 Action 屬性設(shè)置為 TreeViewAction.Unknown,則若要防止該事件被多次引發(fā),需為僅執(zhí)行遞歸代碼的事件處理程序添加邏輯。有關(guān)如何進(jìn)行此操作的示例,請(qǐng)參見 AfterCheck 或 BeforeCheck 事件的示例部分。

通過設(shè)置 TreeView 控件的一些顯示和樣式屬性,可以更改此控件的外觀。如果將 ShowPlusMinus 設(shè)置為 true,則會(huì)分別在每個(gè)可展開或折疊的 TreeNode 旁顯示加號(hào)或減號(hào)按鈕。如果將 ShowRootLines 屬性設(shè)置為 true,TreeView 則會(huì)顯示聯(lián)接所有根樹節(jié)點(diǎn)之間的連線。通過將 ShowLines 屬性設(shè)置為 true,可以顯示子樹節(jié)點(diǎn)與其根節(jié)點(diǎn)之間的連線。如果將 HotTracking 屬性設(shè)置為 true,那么當(dāng)鼠標(biāo)指針移過樹節(jié)點(diǎn)標(biāo)簽時(shí),樹節(jié)點(diǎn)標(biāo)簽的外觀將發(fā)生變化。如果啟用熱跟蹤,樹節(jié)點(diǎn)標(biāo)簽將具有超鏈接的外觀。也可以完全自定義 TreeView 控件的外觀。若要執(zhí)行此操作,請(qǐng)將 DrawMode 屬性設(shè)置為 TreeViewDrawMode.Normal 以外的值并處理 DrawNode 事件。

注意

在運(yùn)行時(shí)設(shè)置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 屬性時(shí),將重新創(chuàng)建 TreeView 句柄(請(qǐng)參見 Control.RecreateHandle)以更新控件的外觀。這將折疊除選定的 TreeNode 之外的所有樹節(jié)點(diǎn)。

下面的代碼示例闡釋了如何使用 TreeView 控件。

Private Sub InitializeTreeView()

treeView1.BeginUpdate()

treeView1.Nodes.Add("Parent")

treeView1.Nodes(0).Nodes.Add("Child 1")

treeView1.Nodes(0).Nodes.Add("Child 2")

treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild")

treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")

treeView1.EndUpdate()

End Sub

From MSDN

VB.NET中的treeview控件

''' summary

''' 加入菜單子節(jié)點(diǎn)

''' /summary

''' param name="tbMenu"菜單表/param

''' param name="tvNode"父節(jié)點(diǎn)/param

''' remarks/remarks

Private Sub AddNode(ByVal tbMenu As DataTable, ByVal tvNode As TreeNode)

Dim myRow As DataRow() = tbMenu.Select(String.Format("PRMENUID = '{0}'", tvNode.NodeID), "SORTORDER")‘查詢子菜單,按SORTORDER字段排序

Dim strURL As String = String.Empty‘菜單鏈接

For Each DataRow In myRow’循環(huán)所有子菜單

Dim MainMenuNode As TreeNode = New TreeNode() With {.Text = DataRow.Item("VALUE"), .NodeID = DataRow.Item("MENU_ID")}'實(shí)例化一個(gè)子節(jié)點(diǎn)

If DataRow.Item("URL").ToString.Length 0 Then

strURL = String.Format("{0}?menuid={1}", DataRow.Item("URL"), DataRow.Item("MENUID"))’菜單鏈接

MainMenuNode.NavigateUrl = strURL

MainMenuNode.IconUrl = "../image/leaf.gif"‘菜單圖標(biāo)

End If

MainMenuNode.SingleClickExpand = True’設(shè)置單擊菜單時(shí)展開子菜單

MainMenuNode.Expanded = True‘默認(rèn)展開所有菜單

tvNode.Nodes.Add(MainMenuNode)’將子節(jié)點(diǎn)添加進(jìn)父節(jié)點(diǎn)

AddNode(tbMenu, MainMenuNode) '利用遞歸生成樹形菜單

Next

End Sub

希望對(duì)你有幫助。

.NET中的treeview(樹形菜單)控件怎么用阿??

使用 treeview的 AfterSelect 事件,如:

vb.net代碼:

Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.AfterSelect

'執(zhí)行相應(yīng)的功能。

End Sub

網(wǎng)頁標(biāo)題:vb.net樹控件的使用的簡(jiǎn)單介紹
瀏覽地址:http://muchs.cn/article40/ddcesho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT做網(wǎng)站、企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、建站公司、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)