Alle MDIChildFenster schließen

SeeSharpNewBee

Erfahrenes Mitglied
Hi,

ich möchte bei meine programm das, wenn ich ein fenster aufrufe, alle anderen childfenster geschlossen werden, bevor das neue aufgemacht wird, ich habe schon etwas code zusammengezimmert, jedoch funktioniert das bei mir nicht so wie ich es will, bzw. ich übergebe die parentform und bekomme jedoch immer die fehlermeldung das die objektinstantz fehlt, bitte um hilfe, danke!

Code:
		public void IsLoaded(Form Window)
		{
			
			Form[] mdichld= Window.MdiChildren;
			
			foreach (Form aktForm in mdichld) 
			{
				aktForm.Close();
			}
		}
 
Verwende das ref-Schlüsselwort, um das Handle der Parent-Form zu übergeben. Der modifizierte Code könnte dann so aussehen:

Code:
public void IsLoaded( ref Form Window )
{for( int n = 0; n < Window.MDIChildren.Length; n++ )
{Window.MDIChildren[n].Close( );
}
}
Beim Aufrufen der Methode musst du nun einfach die gewünschte Parent-Form ebenfalls mit dem ref-Schlüsselwort übergeben:

Code:
( ... )
IsLoaded( ref ParentForm );
( ...)
Ich hoffe, dass dir das weiterhilft.

Gruß
PhoenixLoe
 
Du kannst auch alle Children in einer Foreach-Schleife durch gehen und diese dann Schlißen.
Die Schleife kannst in der Main in ein bsp. Button-Ereignis hinpacken, ohne irgendwas.

Code:
foreach (System.Windows.Forms.Form frmClose in this.MdiChildren)
{
    frmClose.Close();
}


Gruß
ksk
 
Zurück