我會有某種節點的樹狀如下是否有可能禁用基於樹形選擇
根 上下文菜單項| - > some.txt(文本文件,該文件在運行時添加) | - >子(孩子some.txt) | - > child1(孩子的孩子)
我設計我的上下文菜單中的一些選項,新的和刪除
我需要的時候我righclick是在根,孩子或孩子我想禁用刪除選項
我會有某種節點的樹狀如下是否有可能禁用基於樹形選擇
根 上下文菜單項| - > some.txt(文本文件,該文件在運行時添加) | - >子(孩子some.txt) | - > child1(孩子的孩子)
我設計我的上下文菜單中的一些選項,新的和刪除
我需要的時候我righclick是在根,孩子或孩子我想禁用刪除選項
對於ContextMenu,您可以在顯示菜單之前處理ContextMenu.Popup事件並啓用/禁用菜單選項。
對於ContextMenuStrip,您可以使用Opening事件執行相同操作。
例如,如果您使用菜單項標籤屬性來確定是否支持刪除(這僅用於示例)。你可以做一些這樣的事
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;
}
}
但selectednode.tag我總是得到Null值 – Dotnet 2010-09-18 11:14:12
嘿,我設置的標籤屬性,但我無法禁用toolstripmenu – Dotnet 2010-09-18 11:19:17
@Dorababu,是選擇的節點在樹上?我測試了這個,它確實有效。你能分享一些你的代碼嗎?你是否在事件處理程序中設置了一個斷點並檢查事件是否被觸發? – 2010-09-18 13:07:48