你說的“樹形菜單”是指下拉菜單(可以有子菜單)嗎?如果是,VB.net提供了MenuStrip控件,在工具箱里能找到,直接就在對應位置打字就可以了,完全是“所見即所得”。
創新互聯專注于企業全網營銷推廣、網站重做改版、安溪網站定制設計、自適應品牌網站建設、HTML5、購物商城網站建設、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為安溪等各大城市提供網站開發制作服務。
由于每個 TreeNode 都可以包含其他 TreeNode 對象的集合,您可能會在循環訪問集合時覺得很難確定自己在樹結構中的位置。您可以使用 PathSeparator 字符串值來分析 TreeNode.FullPath 字符串,以確定 TreeNode 標簽的起始和終止位置。
可以在樹節點旁顯示圖像,方法是將一個 ImageList 分配給 ImageList 屬性,然后通過引用 Image 在 ImageList 中的索引值來分配該 Image。使用下面的屬性分配圖像:
將 ImageIndex 屬性設置為當樹節點未選定時所顯示的 Image 的索引值。
將 SelectedImageIndex 屬性設置為當樹節點被選定時要顯示的 Image 的索引值。
ImageIndex 和 SelectedImageIndex 屬性值所引用的圖像是所有分配給 Nodes 集合的樹節點顯示的默認圖像。每個樹節點都可以通過設置 TreeNode.ImageIndex 和 TreeNode.SelectedImageIndex 屬性來取代默認的圖像。
樹節點可以展開,以顯示下一級子樹節點。用戶可以在 TreeNode 旁顯示加號 (+) 按鈕時通過單擊加號 (+) 按鈕來展開 TreeNode,或者可以通過調用 TreeNode.Expand 方法來展開 TreeNode。若要展開 Nodes 集合中的所有子樹節點級別,請調用 ExpandAll 方法。若要折疊子 TreeNode 級別,可以調用 TreeNode.Collapse 方法,也可以在 TreeNode 旁顯示減號 (-) 按鈕時按減號 (-) 按鈕。還可以通過調用 TreeNode.Toggle 方法在展開和折疊狀態之間切換。
樹節點可以選擇性地顯示復選框。若要顯示復選框,請將 TreeView 的 CheckBoxes 屬性設置為 true。對于處于選中狀態的樹節點,Checked 屬性設置為 true。
注意
從 BeforeCheck 或 AfterCheck 事件內設置 TreeNode.Checked 屬性將導致該事件被多次引發并可能產生意外行為。例如,您可以在遞歸更新子節點時在事件處理程序中設置 Checked 屬性,以便用戶不必逐個展開并選中每個節點。如果未將 TreeViewEventArgs 的 Action 屬性設置為 TreeViewAction.Unknown,則若要防止該事件被多次引發,需為僅執行遞歸代碼的事件處理程序添加邏輯。有關如何進行此操作的示例,請參見 AfterCheck 或 BeforeCheck 事件的示例部分。
通過設置 TreeView 控件的一些顯示和樣式屬性,可以更改此控件的外觀。如果將 ShowPlusMinus 設置為 true,則會分別在每個可展開或折疊的 TreeNode 旁顯示加號或減號按鈕。如果將 ShowRootLines 屬性設置為 true,TreeView 則會顯示聯接所有根樹節點之間的連線。通過將 ShowLines 屬性設置為 true,可以顯示子樹節點與其根節點之間的連線。如果將 HotTracking 屬性設置為 true,那么當鼠標指針移過樹節點標簽時,樹節點標簽的外觀將發生變化。如果啟用熱跟蹤,樹節點標簽將具有超鏈接的外觀。也可以完全自定義 TreeView 控件的外觀。若要執行此操作,請將 DrawMode 屬性設置為 TreeViewDrawMode.Normal 以外的值并處理 DrawNode 事件。
注意
在運行時設置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 屬性時,將重新創建 TreeView 句柄(請參見 Control.RecreateHandle)以更新控件的外觀。這將折疊除選定的 TreeNode 之外的所有樹節點。
下面的代碼示例闡釋了如何使用 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
''' summary
''' 加入菜單子節點
''' /summary
''' param name="tbMenu"菜單表/param
''' param name="tvNode"父節點/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’循環所有子菜單
Dim MainMenuNode As TreeNode = New TreeNode() With {.Text = DataRow.Item("VALUE"), .NodeID = DataRow.Item("MENU_ID")}'實例化一個子節點
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"‘菜單圖標
End If
MainMenuNode.SingleClickExpand = True’設置單擊菜單時展開子菜單
MainMenuNode.Expanded = True‘默認展開所有菜單
tvNode.Nodes.Add(MainMenuNode)’將子節點添加進父節點
AddNode(tbMenu, MainMenuNode) '利用遞歸生成樹形菜單
Next
End Sub
希望對你有幫助。
TreeView的SelectedNode屬性獲取或設置當前選擇的節點。
TreeView1.SelectedNode?=?TreeView1.Nodes(1)?'選擇第二個節點
分享文章:vb.net樹狀控件,C#樹控件
文章出自:http://m.kartarina.com/article48/heiihp.html
成都網站建設公司_創新互聯,為您提供服務器托管、網站改版、做網站、Google、網站制作、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯