Geordnetes MDI-Formular Problem Einstellung Eltern
-
08-10-2019 - |
Frage
Ich bin mit einem übergeordneten MDI-Formular, das ein Childs hat und sie zeigen sich sehr gut, wenn sie von diesem Elternteil aufgerufen werden und i verwenden, um intensiate Kind Form als
ChildForm child = new ChildForm();
child.IsMdiContainer= this;
child.Show();
funktioniert gut, sobald sie von den Eltern Kontrolle aufgerufen werden, aber wenn ich sie aus einer anderen Form nennen, die nicht Kind eines Elternformulars ist dann länger sie nicht bleibt Kind Haupt Elternteil eines offensichtlicher Grund ist, dass, wenn ich intensiate sie auf, dass unabhängige Form ist, dass ich einfach nicht child.MDIParent verwenden = this; weil sie dazu neigen, unabhängige Form Elternteil zu machen, aber ich habe auch versucht,
MDIParentForm form = new MDIParentForm
ChildForm child = new ChildForm();
child.IsMdiContainer= form ;
child.Show();
aber auch Dosis nicht helfen, anstatt dies wirft es eine Ausnahme, dass die Form, dass ich Satz Elternteil bin versucht, ist nicht MDI Container dann dazu gebe ich einen Versuch und ändern
MDIParentForm form = new MDIParentForm ;
form.IsMdiContainer= true;
ChildForm child = new ChildForm();
child.MDIParent = form ;
child.Show();
und im Ergebnis nichts erscheint
Jede Idee, wie man ..........
Lösung
ein Kind von einem anderen Kind zu erstellen, schreiben Sie einfach es wie folgt aus:
ChildForm sibling = new ChildForm();
sibling.MdiParent = this.MdiParent;
sibling.Show();
oder Brand ein benutzerdefiniertes Ereignis, dass die Eltern reagieren kann.
Andere Tipps
Sie sollten die Eltern festgelegt, die bereits bestehende MDIForm sein, nicht einen neuen erstellen.
Wenn es nicht schon eine Instanz des MDIForm ist, sollten Sie nicht nur eine Instanz des Formulars erstellen, aber es auch zeigen.
var mdiForm = new MdiForm();
mdiForm.IsMdiContainer = true;
var childForm = new ChildForm();
childForm.MdiParent = mdiForm;
mdiForm.Show();
childForm.Show();
Beachten Sie auch, dass ich mdiForm.IsMdiContainer
verwenden, AFAIK gibt es keine IsMdiParent
Eigenschaft.
schreibt diesen Code in einer übergeordneten Form ....
childform obj = new childform( );
obj.MdiParent = this;
obj.StartPosition = FormStartPosition.CenterScreen;
obj.Show( );