我将为树视图提供某种节点,如下所示
根 | - > some.txt(在运行时添加的文本文件) | - > Child(some.txt的子项) | - > child1(孩子的孩子)
我设计了我的上下文菜单,其中包含一些选项,如New和Remove
我需要的是当我点击Root,孩子或孩子时我想禁用删除选项
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
// Remove all the Empty sub menu items
int counter = MainMenu.Items[1].ChildItems.Count;
for(int i=0; i<counter;i++)
{
foreach (MenuItem item in MainMenu.Items[1].ChildItems)
{
if (item.ChildItems.Count != 0)
continue;
MainMenu.Items[1].ChildItems.Remove(item);
break;
}
}