2

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

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

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

作为旁注,我在 VS2005 中工作,但我认为这与这里无关。

我只是似乎找不到选项/属性来更改它,我希望默认行为是表单仅在分配给它们时才显示上下文菜单。

4

1 回答 1

2

不幸的是,将子窗体的 ContextMenuStrip 设置为 null 只会使其显示 MDI 父窗体的 ContextMenuStrip。hack 是将一个空的 ContextMenuStrip 分配给子表单:

void button1_Click(object sender, EventArgs e) {
  Form2 f2 = new Form2();
  f2.MdiParent = this;
  f2.ContextMenuStrip = new ContextMenuStrip();
  f2.Show();
}
于 2012-09-26T13:42:40.640 回答