用TreeView控件,具體方法我不記得了,你可以參照明日科技有限公司的VB1200例第一卷,里面有實(shí)例。注:這是樹樁列表,不是什么折疊菜單
成都創(chuàng)新互聯(lián)是一家專業(yè)提供循化企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為循化眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
工具箱里有ContextMenu(.NET2.0以后名字有點(diǎn)變化,大概差不多),你加入窗體后就可以像編輯普通菜單那樣編輯。
編輯好后,選中你要添加菜單的控件。屬性窗口里有個(gè)ContextMenu屬性,在里面選你剛才建立的ContextMenu
添加:(先在加一個(gè)contextMenu,再它的添加子菜單的click事件編程)
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
注意:這里沒有在ContextMenu菜單添加“更改”項(xiàng),而是直接更改:即左鍵單擊節(jié)點(diǎn)表示
選中,再單擊一下就可以編輯了,更改之后單擊他處就完成更改,和你在windows中更改文
件名字相似。
ToolStripMenuItem.ShortcutKeys 屬性
獲取或設(shè)置與 ToolStripMenuItem 關(guān)聯(lián)的快捷鍵。
使用 ShortcutKeys 屬性可以將組合鍵分配給菜單命令,例如,將 Ctrl+C 分配給“復(fù)制”命令。 您可以使用快捷鍵而不使用訪問(wèn)鍵,也可以同時(shí)使用快捷鍵和訪問(wèn)鍵,訪問(wèn)鍵是菜單或菜單項(xiàng)中與 Alt 鍵一起使用的帶下劃線的字母。 通過(guò)在要用于訪問(wèn)鍵的字母前面鍵入一個(gè)“and”符 (),可以在代碼中定義訪問(wèn)鍵。