MDI子项显示分配给其MDI父级的ContextMenu

时间:2012-09-26 12:09:53

标签: c# winforms mdi

我正在创建一个应用程序,其中启动应用程序时显示的主窗体是MDI容器。我为此表单分配了一个上下文菜单,以便用户可以使用此菜单打开MDI子项。

这很好用,但是当我右键单击MDI子项时,MDI容器(主窗体)的上下文菜单打开,即使子窗体没有分配任何上下文菜单,所以我希望(和想要)右键单击无法打开菜单。

如何确保孩子不显示父上下文菜单?

作为附注,我在VS2005工作,但我不认为这在这里是相关的。

我似乎无法找到选项/属性来更改它,我希望默认行为是表单只显示一个上下文菜单(如果已分配给它们。)

1 个答案:

答案 0 :(得分: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();
}