VB.net如何动态获取菜单栏中的菜单名并用树型表示添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)
Try
’使TreeView可以被编辑
TreeView1.LabelEdit = True
‘判断vb.net树你是不是选定的是不可编辑的节点vb.net树,我这里工种节点不可以被编辑vb.net树 , 只有工种下级的
各个工种名称可以被编辑
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.Texte.Label.ToString Then
If MsgBox("此操作会导致当前工种中的所有人员的工种都被更改,是否确定?", MsgBoxStyle.YesNoMsgBoxStyle.Information, "警告") = MsgBoxResult.Yes Then
。。。。‘我的更改
MsgBox("更改成功vb.net树!", 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 treeview树形导航示例,可以打开新的窗口 。BOOL WINAPI EnumChildWindows
(v=vs.85).aspx
找对方主窗口中的子窗口,直到子窗口类为TreeView
然后再用个CWnd* pOtherTreeWnd = CWnd::Accach(treeView.m_hWnd);
VB.NET中treeview的使用Nodes 集合包含分配给 TreeView 控件的所有 TreeNode 对象 。此集合中的树节点称作根树节点 。随后添加到根树节点上的任何树节点称作子节点 。由于每个 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
VB.net怎么制作树形菜单?。?/h2>你说的“树形菜单”是指下拉菜单(可以有子菜单)吗?如果是,VB.net提供了MenuStrip控件,在工具箱里能找到 , 直接就在对应位置打字就可以了,完全是“所见即所得” 。
vb.net从数据库读取信息填充treeview做成层次目录怎么做给vb.net树你一段vb.net树我曾经写的代码vb.net树,主要是生成TreeView的节点!有什么不懂的地方vb.net树你就提!
Public Sub InitializeTreeView(ByVal strvXL As TreeView, ByVal vrsRecordTwo As DataSet)
Dim treBaseNodeOne As TreeNode
Dim treBaseNodeTwo As TreeNode
Dim strDWDM As String
m_rsRecordTwo = g_clsSybase.SelectSC_PD_SBCSB1()
'查找供电局信息
g_clsSybase.SelectRS_ZZJG_ZZJGDMB(m_rsRecordOne)
'添加根节点
Do While m_rsRecordOne.Read
strDWDM = m_rsRecordOne.GetString(0)'获取单位代码
treBaseNodeOne = New TreeNode
treBaseNodeOne.Text = m_rsRecordOne.GetString(1).Trim()'获取单位名称
treBaseNodeOne.Name = m_rsRecordOne.GetString(1)
treBaseNodeOne.Tag = ""
strvXL.Nodes.Add(treBaseNodeOne)
'添加树结构第二层
Dim drsTwo() As DataRow
drsTwo = m_rsRecordTwo.Tables(0).Select("SSDW='"strDWDM"' and SC__XLBM is null")
For Each dr As DataRow In drsTwo
treBaseNodeTwo = New TreeNode
treBaseNodeTwo.Text = dr.Item("XLMC").ToString.Trim
treBaseNodeTwo.Name = dr.Item("XLMC")
treBaseNodeTwo.Tag = dr.Item("XLBM")
treBaseNodeOne.Nodes.Add(treBaseNodeTwo)
Next
Loop
m_rsRecordOne.Close()
End Sub
【包含vb.net树的词条】关于vb.net树和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- html5css3从试卷及答案,htmlcss题库
- 手机的好与不好怎么办,手机好不好?
- 罗永浩直播技巧和话术分享,罗永浩直播间技术
- mysql怎么声明游标 mysql中游标的作用
- 永川区花卉电商前景如何,重庆永川网络花店
- 包含python的装饰器有什么作用的词条
- 网络布置幼儿园毕业设计,网络布置幼儿园毕业设计方案
- php判断查找数据库 php判断数据库是否连接成功
- a78用什么cpu,a71 cpu