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
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.
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