2011-04-17 56 views
1

我有一個TreeView和一個上下文菜單。我只想在右鍵單擊ROOT節點而不是子節點時顯示上下文菜單。僅當用戶點擊TreeView中的根節點時,如何顯示上下文菜單?

這是我到目前爲止。這顯示了上下文菜單,即使我右鍵單擊子節點。我怎樣才能改變這個,使菜單隻顯示當我右鍵點擊根節點?可能嗎?

if(e.Button == MouseButtons.Right) 
{ 
    // Select the clicked node 
    treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y); 

    if(treeView1.SelectedNode != null) 
    { 
     myContextMenuStrip.Show(treeView1, e.Location) 
    } 
} 

回答

4

是的,這是可能的,但是您需要在您的if語句中添加一些邏輯來驗證用戶點擊的節點是否爲根節點。

但是我們如何知道它是否是一個根節點?好吧,仔細想想,我們可以將一個根節點定義爲一個沒有任何父母的節點。所以你可以簡單地檢查TreeNodeParent property,並確保它是null

修改代碼看起來是這樣的:

if (e.Button == MouseButtons.Right) 
{ 
    // Select the clicked node 
    treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y); 

    if (treeView1.SelectedNode != null && treeView.SelectedNode.Parent == null) 
    { 
     myContextMenuStrip.Show(treeView1, e.Location) 
    } 
} 

要保留的檢查節點本身不是null,因爲你不希望顯示上下文菜單時,他們避風港」 t點擊一個節點,但你需要添加檢查一個父節點,因爲它告訴你它是否是一個根節點。您用編程方式指示的方式是使用邏輯AND,它是C#中的&&運算符。

+0

這做了JOBB。非常感謝你。 – Erik 2011-04-17 09:55:42

0

檢查你點擊的節點是根節點不是檢查它是null

相關問題