MDI父表单问题设置父
我正在使用一个有孩子的MDI父表单,当他们被这个父母调用时他们很好地表现出来并且我用它来强化儿童forms
ChildForm child = new ChildForm(); child.IsMdiContainer= this; child.Show();
一旦从父母控制中调用它们就会很好地工作但是如果我从另一种不是任何父forms的孩子的forms中调用它们那么它们不再是主要父母的孩子一个明显的原因是当我在那个独立forms上强化它们时我根本无法使用child.MDIParent = this; 因为它会倾向于使独立forms的父母,但我也尝试过
MDIParentForm form = new MDIParentForm ChildForm child = new ChildForm(); child.IsMdiContainer= form ; child.Show();
但这也没有帮助而不是这个它抛出一个exception,我试图设置父的forms不是MDI容器然后对此我试一试并修改
MDIParentForm form = new MDIParentForm ; form.IsMdiContainer= true; ChildForm child = new ChildForm(); child.MDIParent = form ; child.Show();
并且在其结果中没有出现
任何想法如何……….
要从另一个孩子创建一个孩子,只需这样写:
ChildForm sibling = new ChildForm(); sibling.MdiParent = this.MdiParent; sibling.Show();
或者触发父级可以响应的自定义事件。
您应该将Parent设置为已存在的mdiform,而不是创建新的mdiform。
如果已经没有mdiform的实例,您不仅应该创建表单的实例,还应该显示它。
var mdiForm = new MdiForm(); mdiForm.IsMdiContainer = true; var childForm = new ChildForm(); childForm.MdiParent = mdiForm; mdiForm.Show(); childForm.Show();
还要注意我使用的是mdiForm.IsMdiContainer
,AFAIK没有IsMdiParent
属性。
以父表格编写此代码….
childform obj = new childform( ); obj.MdiParent = this; obj.StartPosition = FormStartPosition.CenterScreen; obj.Show( );