Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MDI Parent in Usercontrol festlegen
zerberos
myCSharp.de - Member



Dabei seit:
Beiträge: 520

Themenstarter:

MDI Parent in Usercontrol festlegen

beantworten | zitieren | melden

Hallo,

Ich habe in meinen Projekt ein UserControl. Aus diesem UserControl will ich jetzt eine andere Maske aufrufen. Da ich ein MDI Projekt habe muss ich ja für die neue Maske MDIParent festlegen.

Normal machen ich das mit this.MDIParent. Aber das geht ja im UserControl nicht. Was muss ich machen

atlas.Bilder_Bearbeiten b = new eatlas.Bilder_Bearbeiten();
b.MdiParent = ?????;
b.set_data(data);
b.Show();

Danke
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von zerberos am .
private Nachricht | Beiträge des Benutzers
Florian Reischl
myCSharp.de - Experte

Avatar #avatar-2880.jpg


Dabei seit:
Beiträge: 1.564
Herkunft: München

beantworten | zitieren | melden

Hallo zerberos

Meinst du so was:


Form parentForm = this.FindForm();
Form mdiParent = parentForm != null ? parentForm.MdiParent : null;

Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Florian Reischl,

technisch sicher möglich, schön ist das aber nicht. Siehe die folgende Begründung.

EDIT: Ok, im Grunde triffst du gar keine Annahme, was für eine Anwendung es ist, weil dein Code auch funktioniert, wenn MdiParent nulll ist. Das schwächt meinen Einwand natürlich. Trotzdem halte ich meinen Einwand insofern für berechtigt, dass er dazu animiert, sich über die Zusammenhänge Gedanken zu machen.


Hallo zerberos,

das UserControl sollte kein Annahme darüber machen, ob das Fenster, in dem es enthalten ist, in einer MDI- was sonst für einer Anwendung läuft. Mit anderen Worten, du solltest MdiParent überhaupt nicht setzen. Das musst du schon der Anwendung selbst oder zumindest ihren Forms überlassen.

Du kannst im UserControl z.B. ein eigenes Event definieren (siehe [FAQ] Eigenen Event definieren), was von dem Parent-Form abonniert werden kann, um das neue Form zu öffnen und dort (bei Bedarf) eben auch MdiParent zu setzen.

herbivore
private Nachricht | Beiträge des Benutzers