TreeView1_NodeMouseClick事件中处理上下文菜单出现离奇问题,急等大神??????????????
我想在树节点上对不同层次的节点单击鼠标右键时,出现的菜单是不一样的(有的菜单项是禁用的),我这里节点层次共有三个:即根目录节点、子目录节点和文档节点。结果就右键单击文档节点与期待效果一致。相应代码如下:
- VB.NET code
Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick If e.Button = Windows.Forms.MouseButtons.Right Then MsgBox(e.Node.Text) If e.Node.Nodes.Count <> 0 AndAlso e.Node.Text <> TreeView1.Nodes(0).Text Then MsgBox("rootDirectory node") 文档ToolStripMenuItem.Enabled = False 删除ToolStripMenuItem.Enabled = False 编辑ToolStripMenuItem.Enabled = False 复制ToolStripMenuItem.Enabled = False 剪切ToolStripMenuItem.Enabled = False 粘贴ToolStripMenuItem.Enabled = False End If If e.Node.Nodes.Count <> 0 AndAlso e.Node.Text <> TreeView1.Nodes(0).Text Then MsgBox("sonDirectory node") 目录ToolStripMenuItem.Enabled = False 编辑ToolStripMenuItem.Enabled = False 复制ToolStripMenuItem.Enabled = False 剪切ToolStripMenuItem.Enabled = False End If If e.Node.Nodes.Count = 0 Then MsgBox("leaf node") 目录ToolStripMenuItem.Enabled = False 粘贴ToolStripMenuItem.Enabled = False End If End If End Sub
相应的图片如下:
注:为了测试方便,我加了几个输出语句,如上图,在目录上单击右键,没有禁用任何菜单项,也没有任何输出,然而在文档节点上单击,一切正常,有灰色禁用的菜单项,也有相应输出。
[解决办法]
下断点查看下If e.Node.Nodes.Count <> 0 AndAlso e.Node.Text <> TreeView1.Nodes(0).Text 语句啊,没弹出msg就是这里if条件是false了