MDI-Child soll ein anderes MDI-Child aufrufen

MikeGK

Grünschnabel
Hallo,

ich habe zwei Probleme mit einer MDI-Anwendung.

1.
Wenn ich vom MDI-Parent-Form ein MDI-Child aufrufe klappt das ganze wunderbar.
Jetzt habe ich aber auf einem MDI-Child-Form einen Button, der auf Click ein anderes MDI-Child-Form aufrufen soll.
Die Zuweisung

Form2.MdiParent=MDIMainFrame;

bringt mir jedoch die Fehlermeldung:

MDIMainFrame deutet auf 'Klasse' hin wo eine Variable erwartet wird.
Wie kann ich hier (in Form2) die MdiParent-Eigenschaft auf mein MDIMainFrame setzen?

2.
Wie kann ich das mehrfache Öffnen von MDI-Child-Forms verhindern?

Leider habe ich bisher nichts gefunden, was mir wirklich weitergeholfen hätte.

Vielen Dank für Eure Hilfe
 
Hallo MikeGK,

da Du im Form zwischen Klasse und Form casten kannst, stellt das kein Problem dar :
In der MDI-Parent (der MDI-Container) - nennen wir es mal 'mainform'
Code:
internal void neuesFenster()
{
    subform sub = new subform();
    sub.MdiParent = this;
    sub.show();
}
im SubForm :
Code:
private void button1_Click(object sender, System.EventArgs e)
{
    Form frmMain = MdiParent;
    mainform main = (mainform)frmMain;
    //nun hast Du eine Referenz auf Dein mainform
    //rufe die, in der mainform deklarierten, Methode auf (die mindestens 'internal' sein muß).
    main.neuesFenster();
}
Fertig ;)

Asterix
 
Hallo Asterix,

vielen Dank für Deine Hilfe, ich habe jedoch inzwischen (nach tagelangem Probieren) noch eine andere Möglichkeit gefunden:

Nachstehend der Code für die Funktion Button_1_Click:

frmNeu Form1 = new frmNeu();
Form1.MdiParent=MDIMainFrame.ActiveForm;
Form1.Show();

Trotzdem nochmals Danke.

Mike
 
Zurück