添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)
创新互联是一家专业提供霍邱企业网站建设,专注与成都网站建设、做网站、HTML5建站、小程序制作等业务。10年已为霍邱众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
Try
’使TreeView可以被编辑
TreeView1.LabelEdit = True
‘判断你是不是选定的是不可编辑的节点,我这里工种节点不可以被编辑,只有工种下级的
各个工种名称可以被编辑
If Trim(TreeView1.SelectedNode.Text) = "工种" Then
‘添加节点
AddNode = New TreeNode("请输入新工种名字")
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
删除与添加类似,只是如果你的节点名字从其他处(如数据库)得来,那么你还需要更新数据库
编辑:
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
‘此时你改完了节点名字
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 一个是改前的名字一个是该后的名字,具体哪个对
哪个请查MSDN
ElseIf Trim(e.Node.Text) "工种" And e.Node.Text e.Label.ToString Then
If MsgBox("此操作会导致当前工种中的所有人员的工种都被更改,是否确定?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "警告") = MsgBoxResult.Yes Then
。。。。 ‘我的更改
MsgBox("更改成功!", MsgBoxStyle.OKOnly, "提示")
'Call InitTree() ‘有时要重新把treeview初始化一遍,视需求定
End If
End If
Catch err As Exception
MsgBox(err.ToString)
End Try
End Sub
其他:
挡treeview得到焦点时你可以使用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菜单添加“更改”项,而是直接更改:即左键单击节点表示
选中,再单击一下就可以编辑了,更改之后单击他处就完成更改,和你在windows中更改文
件名字相似。
右键点窗口 用菜单编辑器添加
添加后
VB Form1.frm 用记事本打开能看到
Begin VB.Menu a
Caption = "312"
Begin VB.Menu b
Caption = "13131"
Begin VB.Menu c
Caption = "1"
End
Begin VB.Menu d
Caption = "2"
End
End
End
End
啥叫“下拉菜单”?到底是要做菜单,还是做下拉列表?!
如果是做菜单,那就直接设置好一、二级菜单;
如果是下拉列表,那就在一级列表的click事件中,根据选择的项目,动态设置二级列表的内容就行了。
采用ADO控件、利用ADO对象等方法。
准备工作:建立数据库E:\operation.accdb;建数据表:selection;数据表中,建段:User,Password,并添加一条记录点工程-引用选中MicrosoftActivexDataObjects6.1Library。
使用VB使用ADO组件读取Access数据库,使用OpenFileDiag组件或者.NET框架控件完成对数据库文件的选择,而后,使用一个标准的Table控件完成对数据库数据的显示,最后,编辑事件响应,使该Table控件响应鼠标选中事件(CheckBox或者直接使用Table控件的事件响应均可,将选中的列输出到文本文件。