2012-09-26 111 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