Laden...

[gelöst] MDI-Childform von einer SDI Form öffnen (nicht Childform)?

Erstellt von caoimhin vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.733 Views
C
caoimhin Themenstarter:in
34 Beiträge seit 2010
vor 13 Jahren
[gelöst] MDI-Childform von einer SDI Form öffnen (nicht Childform)?

Hallo,

nach langem suchen und hin und her habe ich mich dazu entschlossen nun doch einfach mal die schlaue Masse zu befragen. Ich bin noch blutiger Anfänger in sachen C#. Habe mir auch fein Lektüre gekauft und quäle bei jeder kniffeligen Aufgabe 'Grugel'

Nun zu meinem Problem.

Ich habe ein MDI-Parent, in diesem Parent habe ich logischerweise eine Childform. Von dieser Childform öffne ich eine weiter Form (jedoch nicht als MDIChild) Quasi ein zweites Fenster. Die Childform schließt sich dabei. Alles so gewollt. Wenn ich nun die Toolbox schließe per Button möchte ich das sich die Childform wieder öffnet. Das schaffe ich auch aber diese landet nicht im MDI-Container sondern außerhalb.

Hier mal der Code


private void button1_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.zahlungsartBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.lulaDataSet);
            this.Close();
            Kunden Kunde = new Kunden();
            Kunde.MdiParent = this.MdiParent;
            Kunde.Show();
        }

Ich fürchte es ist nicht schwer, ich weiß nur leider nicht wo ich da noch ansetzen soll. Ich vermute das es am this.MDIParent liegt. Weil die geöffnete Form nicht im Parent ist. Aber das ist halt nur eine Vermutung.

Wäre über Hilfe sehr dankbar

Gruß

Kevin

Das hoffen wir alle

D
24 Beiträge seit 2009
vor 13 Jahren

Ich vermute das es am this.MDIParent liegt. Weil die geöffnete Form nicht im Parent ist

Jep. Du musst wie im Code angegeben den MdiParent für die Kundenform angeben. Du weist hier aber den MdiParent Wert der Nicht-Mdi-Form (this.MdiParent) zu, welcher logischerweise leer ist. Wenn du hier den richtigen Parent setzt sollte es gehen.

C
caoimhin Themenstarter:in
34 Beiträge seit 2010
vor 13 Jahren

Hallo,

also die Lösung war doch nicht so leicht wie ich dachte aber durchaus logisch UND ich hab die Lösung sogar hier im Forum gefunden - wenn auch unter einem nicht so einleuchtenden Betreff.

Und zwar hat der gute norman_timo den passenden Code-Schnipsel im Jahr 2005 gepostet 😉

MDI-Parent Code


     public class Mainform : Winform
       {
             // Klassen Variabel
              public static Winform myInstanceHandle = null;

            //Constructor
           public MainForm()
           {
            myInstanceHandle = this;
           }

Code für die Form die das Child in der Parentform öffnen soll


Childform child = new Childform();

child.MdiParent = Mainform.myInstanceHandle;
child.Show();

Die Erklärung ist recht simple. Wie vermutet öffnet sich die 'Childform' bei meinem ersten Code Schnipsel nicht in dem gewünschten Parent weil es dort keins gibt.
Mit dem oben abgebildeten Beispiel weise ich meiner Form einfach das richtige Parent-Fenster zu.

That it. wäre ich wohl im Leben nicht drauf gekommen aber so funktioniert es einwandfrei. Wollte dies nur für die Nachwelt da lassen falls jemand mal ein gleiches Problem hat und wie ich lange Zeit keine Lösung findet.

In diesem Sinne

Kevin

Das hoffen wir alle