簡體   English   中英

是否可以根據Treeview上的選擇禁用上下文菜單項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM