Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MDI子项显示分配给其MDI父项的上下文菜单_C#_Winforms_Mdi - Fatal编程技术网

C# MDI子项显示分配给其MDI父项的上下文菜单

C# MDI子项显示分配给其MDI父项的上下文菜单,c#,winforms,mdi,C#,Winforms,Mdi,我正在创建一个应用程序,其中启动应用程序时显示的主窗体是一个MDI容器。我为这个表单分配了一个上下文菜单,这样用户就可以使用这个菜单打开MDI子项 这很好,但是当我右键单击MDI子窗体时,MDI容器(主窗体)的上下文菜单将打开,即使子窗体没有指定任何上下文菜单,因此我希望(并且希望)右键单击时不会打开任何菜单 如何确保子项不显示父上下文菜单 顺便说一句,我在VS2005工作,但我认为这与这里无关 我似乎找不到改变这一点的选项/属性,我希望默认行为是表单仅在分配了上下文菜单时显示上下文菜单。不幸的

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

这很好,但是当我右键单击MDI子窗体时,MDI容器(主窗体)的上下文菜单将打开,即使子窗体没有指定任何上下文菜单,因此我希望(并且希望)右键单击时不会打开任何菜单

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

顺便说一句,我在VS2005工作,但我认为这与这里无关


我似乎找不到改变这一点的选项/属性,我希望默认行为是表单仅在分配了上下文菜单时显示上下文菜单。

不幸的是,将子表单的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();
}

非常感谢你。我真的希望孩子们的默认行为刚才会显示一个,因为他们的行为是空的。只需在其中添加一个新的emtpy ContextMenuStrip,就可以实现这一目的。