是否可以根据Treeview上的选择禁用上下文菜单项

Dor*_*eka 4 c# treeview winforms

我将为树视图提供某种节点,如下所示

Root | - > some.txt(在运行时添加的文本文件)| - > Child(some.txt的子项)| - > child1(child for child)

我设计了我的上下文菜单,其中包含一些选项,如New和Remove

我需要的是当我righclick Root,孩子或孩子我想要禁用删除选项

Chr*_*lor 9

对于ContextMenu,您可以在显示菜单之前处理ContextMenu.Popup事件并启用/禁用菜单选项.

对于ContextMenuStrip,您可以使用Opening事件执行相同操作.

例如,如果使用菜单项Tag属性来确定是否支持删除(这仅用于示例).你可以做这样的事情

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
  if ((int)treeView1.SelectedNode.Tag == 1)
  {
    removeToolStripMenuItem.Enabled = true;
  }
  else
  {
    removeToolStripMenuItem.Enabled = false;
  }
}
Run Code Online (Sandbox Code Playgroud)