Entwickler-Ecke
WinForms - MDI - nur 1 childfenster
Skiller-1988 - Fr 29.08.08 15:26
Titel: MDI - nur 1 childfenster
Hi,
auch wenn ich mich schon fsat für diese Frage schähme, weil die Antwort sicher super einfach ist, muss ich sie trozdem stellen da mir zum Freitag keine elegante Lösung dazu einfällt.
Also mein Problem:
Ich habe ein Hauptfenster ( = Mdicontainer ) und möchte dann innerhalb dieses Mdicontainer ein mdichildfenster öffnen, was ja soweit kein Problem ist, allerdings möchte ich nur genau 1 mdi childfenster öffnen und wenn ich das zweite mal auf den Butten, für das childfenster klicke sollte sich kein weiteres childfenster öffnen sondern der Focus auf das geöffnete gesetzt werden.
C#-Quelltext
1: 2: 3:
| Form2 mi = new Form2 (); mi.MdiParent = this; mi.Show(); |
so hab ich das gerade weis aber das es so nicht gehen kann weil ja immer ein neues Objekt erstellt wird.
Th69 - Fr 29.08.08 15:59
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Form[] forms = MdiChildren; if(forms.Length > 0) { forms[0].Select(); } else { ... } |
Aber wenn du nur genau 1 Unterfenster brauchst, warum benutzt du dann überhaupt MDI?
Skiller-1988 - Fr 29.08.08 16:39
Ja müsste funktionieren erstmal Danke für deine Hilfe, eigentlich hätte ich da aber auch selber drauf kommen können.
Ich nutze MDI damit ich ein Hauptfenster habe und ich möchte nur genau 1 MDIchildren pro Kategorie bzw Button, das heißt es können dann schön mehrere MDIchildrenfenster gleichzeitig offen sein nur sollten diese unterschiedlichen Inhalt haben.
Th69 - Fr 29.08.08 16:52
Ok, dann benötigst du aber eine andere Abfrage:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| Form OpenForm(Type type) { foreach(Form form in MdiChildren) { if(form.GetType() == type) { form.Select(); return form; } }
Form newForm = (Form)Activator.CreateInstance(type); newForm.MdiParent = this; newForm.Show();
return newForm; }
OpenForm(typeof(Form2)); |
Jedes Unterformular muß dann eine eigenständig von Form abgeleitete Klasse sein.
Alternativ könntest du auch eine Unterformular-Klasse mit einer Kategorie-Auflistung (enum) erstellen und dann die Abfrage (statt dem Typ dann den enum-Wert) ändern.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!