vb.net树状教程 vb树状菜单

VB.net如何动态获取菜单栏中的菜单名并用树型表示

添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)

成都创新互联专注于网站建设,为客户提供成都做网站、成都网站设计、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,成都品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。

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.net怎么制作树形菜单啊?

你说的“树形菜单”是指下拉菜单(可以有子菜单)吗?如果是,VB.net提供了MenuStrip控件,在工具箱里能找到,直接就在对应位置打字就可以了,完全是“所见即所得”。

如何用vb处理树形结构

树状结构使用treeview实现,控件添加方法:右击“工具箱”-“部件”-microsoft windows common controls 6.0-确定,应用

下面是简单的添加删除方法,

Option Explicit

‘添加项目

Private Sub Command1_Click()

Dim nodx As Node

Set nodx = TreeView1.Nodes.Add(, , "zf", "紫风无痕关系(双击收起)")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zfwife", "老婆")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zflover", "情人")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zffriend", "朋友")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp1", "大老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp2", "二老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp3", "三老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp4", "四老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp5", "五老婆")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr1", "1号情人")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr2", "2号情人")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr3", "3号情人")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py1", "张三")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py2", "李四")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py3", "王麻子")

Set nodx = TreeView1.Nodes.Add("py1", tvwChild, "pylp1", "张三的老婆")

Set nodx = TreeView1.Nodes.Add("py1", tvwChild, "pylp2", "张三的孩子")

nodx.EnsureVisible

End Sub

'删除代码

Private Sub Command2_Click()

MsgBox ("将要删除" TreeView1.SelectedItem.Text)

TreeView1.Nodes.Remove (TreeView1.SelectedItem.Index)

End Sub


本文标题:vb.net树状教程 vb树状菜单
本文URL:http://myzitong.com/article/hgoecs.html