Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# 如何允许在MdiContainer的子容器中显示对话框?_C#_Winforms_Mdi - Fatal编程技术网

C# 如何允许在MdiContainer的子容器中显示对话框?

C# 如何允许在MdiContainer的子容器中显示对话框?,c#,winforms,mdi,C#,Winforms,Mdi,我有一个表单this.IsMdiContainer=true。我在里面展示了一个子窗体 FrmCustomer frm=new FrmCustomer(); frm.MdiParent = this; frm.Show(); FrmCustomerDetail frm=new FrmCustomerDetail(null); frm.ShowDialog(this); 我想在FrmCustomer中显示一个表单。我用这个密码 FrmCustomerDetail frm=

我有一个表单
this.IsMdiContainer=true
。我在里面展示了一个子窗体

 FrmCustomer frm=new FrmCustomer();
 frm.MdiParent = this;
 frm.Show();
   FrmCustomerDetail frm=new FrmCustomerDetail(null);
   frm.ShowDialog(this);
我想在FrmCustomer中显示一个表单。我用这个密码

  FrmCustomerDetail frm=new FrmCustomerDetail(null);
  frm.MdiParent = this.MdiParent;
  frm.ShowDialog();
   FrmCustomerDetail frm=new FrmCustomerDetail(null);
   frm.ShowDialog(this);
但我有一个错误

   FrmCustomerDetail frm=new FrmCustomerDetail(null);
   frm.ShowDialog(this);
非顶级表单的表单不能显示为模式 对话框。在调用之前,请从任何父窗体中删除该窗体 展示对话。”

   FrmCustomerDetail frm=new FrmCustomerDetail(null);
   frm.ShowDialog(this);

实现这一点的一种方法是将我们的窗口保留为MdiOwner,并使用ShowDialog方法参数设置窗口所有者

   FrmCustomerDetail frm=new FrmCustomerDetail(null);
   frm.ShowDialog(this);

省略
frm.mdipalent=this.mdipalent
,它就会工作。您不能
ShowDialog
MdiChildren@GuidoG谢谢,但我想在mdicontainer中显示表单。请解释您使用
的意思,但我想在mdicontainer中显示表单
当我仅使用showdialog时,表单显示在容器外部,这就是showdialog的用途。要解释你的意思是什么,这是不容易改变的。在我看来,这是一个正确的答案,如果您想要一些不同的东西,请编辑您的问题并详细说明您想要什么您不能在MDI容器上使用Form.ShowDialog。