添加:(先在加一個(gè)contextMenu,再它的添加子菜單的click事件編程)
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁(yè)制作,對(duì)會(huì)所設(shè)計(jì)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
Try
’使TreeView可以被編輯
TreeView1.LabelEdit = True
‘判斷你是不是選定的是不可編輯的節(jié)點(diǎn),我這里工種節(jié)點(diǎn)不可以被編輯,只有工種下級(jí)的
各個(gè)工種名稱可以被編輯
If Trim(TreeView1.SelectedNode.Text) = "工種" Then
‘添加節(jié)點(diǎn)
AddNode = New TreeNode("請(qǐng)輸入新工種名字")
TreeView1.SelectedNode.Nodes.Add(AddNode)
TreeView1.ExpandAll()
AddNode.BeginEdit()
TreeView1.LabelEdit = True
NodeAdded = True
End If
Catch err As Exception
MsgBox(err.ToString)
End Try
刪除與添加類似,只是如果你的節(jié)點(diǎn)名字從其他處(如數(shù)據(jù)庫(kù))得來(lái),那么你還需要更新數(shù)據(jù)庫(kù)
編輯:
Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles TreeView1.BeforeLabelEdit
TreeView1.LabelEdit = True ‘使可以編輯
AddNode = TreeView1.SelectedNode
End Sub
Private Sub TreeView1_AfterLabelEdit(ByVal sender As Object, ByVal e As System.windows.Forms.NodeLabelEditEventArgs) Handles TreeView1.AfterLabelEdit
Try
‘此時(shí)你改完了節(jié)點(diǎn)名字
TreeView1.SelectedNode.EndEdit(True)
If e.Label Is Nothing Then
'do nothing
ElseIf e.Node.Text = "工種" Then ‘工種不能改
e.CancelEdit() = True
‘e.Node.Text ,e.Label.ToString 一個(gè)是改前的名字一個(gè)是該后的名字,具體哪個(gè)對(duì)
哪個(gè)請(qǐng)查MSDN
ElseIf Trim(e.Node.Text) "工種" And e.Node.Text e.Label.ToString Then
If MsgBox("此操作會(huì)導(dǎo)致當(dāng)前工種中的所有人員的工種都被更改,是否確定?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "警告") = MsgBoxResult.Yes Then
。。。。 ‘我的更改
MsgBox("更改成功!", MsgBoxStyle.OKOnly, "提示")
'Call InitTree() ‘有時(shí)要重新把treeview初始化一遍,視需求定
End If
End If
Catch err As Exception
MsgBox(err.ToString)
End Try
End Sub
其他:
擋treeview得到焦點(diǎn)時(shí)你可以使用ContextMenu,反之ContextMenu禁用
Private Sub TreeView1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.GotFocus
TreeView1.ContextMenu = ContextMenu1
End Sub
Private Sub TreeView1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.LostFocus
TreeView1.ContextMenu = Nothing
End Sub
注意:這里沒(méi)有在ContextMenu菜單添加“更改”項(xiàng),而是直接更改:即左鍵單擊節(jié)點(diǎn)表示
選中,再單擊一下就可以編輯了,更改之后單擊他處就完成更改,和你在windows中更改文
件名字相似。
使用 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
''' 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í)展開(kāi)子菜單
MainMenuNode.Expanded = True‘默認(rèn)展開(kāi)所有菜單
tvNode.Nodes.Add(MainMenuNode)’將子節(jié)點(diǎn)添加進(jìn)父節(jié)點(diǎn)
AddNode(tbMenu, MainMenuNode) '利用遞歸生成樹(shù)形菜單
Next
End Sub
希望對(duì)你有幫助。
可以做一個(gè)基窗體作為父窗體,父窗體上有左邊的菜單欄
然后所有畫(huà)面都繼承這個(gè)父窗體,然后所有頁(yè)面都會(huì)有父窗體左邊菜單欄了,每個(gè)頁(yè)面內(nèi)容自己加控件就行 就會(huì)顯示都右邊的
不知你是否理解 不理解可追問(wèn) 。。。
你說(shuō)的“樹(shù)形菜單”是指下拉菜單(可以有子菜單)嗎?如果是,VB.net提供了MenuStrip控件,在工具箱里能找到,直接就在對(duì)應(yīng)位置打字就可以了,完全是“所見(jiàn)即所得”。
亂是因?yàn)槟銓?duì)開(kāi)發(fā)軟件還不熟悉,慢慢熟悉吧.如果你真的要不顯示的話可以通過(guò)代碼在程序運(yùn)行時(shí)動(dòng)態(tài)生成控件,并設(shè)置控件的屬性和事件.這里給你的只是一個(gè)指引,詳細(xì)教程你在搜索引擎上搜索一下"VB.NET 動(dòng)態(tài)生成控件"的案例,因?yàn)樘L(zhǎng)了,這里無(wú)法一一說(shuō)明.
標(biāo)題名稱:vb.net樹(shù)形菜單 net 樹(shù)形菜單
網(wǎng)頁(yè)路徑:http://sd-ha.com/article12/hhesgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、面包屑導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、域名注冊(cè)、定制開(kāi)發(fā)、搜索引擎優(yōu)化
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)