[英]Is it possible to disable context menu items based on the selection on Treeview
我將為樹視圖提供某種節點,如下所示
Root | - > some.txt(在運行時添加的文本文件)| - > Child(some.txt的子項)| - > child1(child for child)
我設計了我的上下文菜單,其中包含一些選項,如New和Remove
我需要的是當我righclick Root,孩子或孩子我想要禁用刪除選項
對於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;
}
}
// 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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.