2012-09-26 45 views
1

我正在創建一個應用程序,其中應用程序啓動時顯示的主窗體是一個MDI容器。我爲此表單分配了一個上下文菜單,以便用戶可以使用此菜單打開MDI子項。MDI的孩子顯示ContextMenu分配給他們的MDI父

這工作得很好,但是當我右鍵單擊一個MDI子項時,MDI容器(主窗體)的上下文菜單打開,即使子窗體沒有任何上下文菜單分配,所以我期望並希望)沒有菜單打開右鍵單擊。

如何確保孩子不顯示父上下文菜單?

作爲一個方面說明我正在VS2005工作,但我不認爲這是相關的在這裏。

我似乎無法找到選項/屬性來改變這一點,我希望默認行爲是窗體只顯示一個上下文菜單,如果一個分配給他們。

回答

2

不幸的是,將子窗體的ContextMenuStrip設置爲null只會使其顯示MDI父級的ContextMenuStrip。黑客將分配一個空的ContextMenuStrip到子窗體:

void button1_Click(object sender, EventArgs e) { 
    Form2 f2 = new Form2(); 
    f2.MdiParent = this; 
    f2.ContextMenuStrip = new ContextMenuStrip(); 
    f2.Show(); 
} 
+0

非常感謝。我真的希望孩子的默認行爲剛剛顯示一個,因爲他們是空的。只需添加一個新的Emptpy ContextMenuStrip即可。 – Knirkegaard