VB.net如何动态获取菜单栏中的菜单名并用树型表示添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)
Try
【vb.net菜单栏 vbnet tabpage】 ’使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.Texte.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菜单和状态栏的内容不见了你是不是把类似
Me.Controls.Add(MenuStrip1)
Me.Controls.Add(StatusBar1)
这样的语句弄没了?放在initializeComponent方法里即可
vb.net加载主窗体时,菜单栏有颜色,像乱码怎么回事,加载完了就没有了 , 就瞬间,求解决,真的很难受看着Public Class Form1
Dim I As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
I = I + 1
If I = 10 Then Me.Show()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Hide()
End Sub
End Class
你可以先隐藏窗体 让他加载完 再显示出来 如上代码 如果还不够时间 可以适当增加
vb.net外接程序不显示菜单系统bug,网络问题 。
1、系统bug是vb.net外接软件系统出现了问题导致程序不显示菜单,等待官方修复即可 。
推荐阅读
- 虎牙直播戴上耳机听是什么,虎牙直播戴上耳机听是什么声音
- 王座怎么转换ios,王座可以连接电脑吗?
- 软件专业毕业设计流程表,软件类毕业设计
- 移动flutter混合开发,flutterandroid混合
- python网络编程有哪些,python网络编程从入门到精通
- 蜥蜴视频是什么软件看,想看蜥蜴
- java手机录音代码 安卓录音代码
- 怎么设置手机语音功能,怎么设置手机语音功能免打扰
- 直播网站开发,直播开发教程