Hallo, folgendes Problem
Ich habe einen MDI Container u ich dem rufe ich ein ChildFenster auf
private void buttonItem_Einstellungen_EMailTexte_Uebersicht_Click(object sender, EventArgs e)
{
EMailTexte_Uebersicht = new frm_EMailTexte_Uebersicht();
bool offen = false;
for (int i = 0; i < this.MdiChildren.Length; i++)
{
if (typeof(frm_EMailTexte_Uebersicht) == this.MdiChildren[i].GetType())
offen = true;
}
if (offen == false)
{
EMailTexte_Uebersicht.MdiParent = this;
EMailTexte_Uebersicht.Initialisierung();
EMailTexte_Uebersicht.Show();
}
}
In dem Fenster habe ich ein Datagrid u wenn ich eine Zeile markiere möchte ich über die rechte Maustaste zB etwas neu erstellen oder die Zeile ändern u dabei wird ein neues Fenster aufgerufen u dieses möchte ich wieder als Child haben u dabei soll im obersten MDI Container bestimmte Buttons ausgeblendet bzw weggeblendet werden
zB
ribbonTabItem_Auktionsuebersicht.Visible = false;
ribbonTabItem_AuctionInspector.Visible = false;
ribbonTabItem_Einstellungen.Visible = false;
Habe jetzt nicht so eine gute Idee wie ich das realisieren kann. Habe zuerst versucht über den ERSTELL/ÄNDERN Button eine Prozedur im MDI Container auszulösen, aber funktioniert nicht. Bringt zwar keine Fehlermeldung, aber es verändert sich nichts
public void SprachCodeHinzufuegen()
{
frm_EMailSprachcodeHinzufuegen EMailSprachcodeHinzufuegen = new frm_EMailSprachcodeHinzufuegen();
EMailTexte_Uebersicht = new frm_EMailTexte_Uebersicht();
bool offen = false;
for (int i = 0; i < this.MdiChildren.Length; i++)
{
if (typeof(frm_EMailSprachcodeHinzufuegen) == this.MdiChildren[i].GetType())
offen = true;
}
if (offen == false)
{
EMailSprachcodeHinzufuegen.MdiParent = this;
ribbonTabItem_MeinEbay.Visible = false;
ribbonTabItem_Auktionsuebersicht.Visible = false;
ribbonTabItem_AuctionInspector.Visible = false;
ribbonTabItem_Einstellungen.Visible = false;
EMailTexte_Uebersicht.Hide();
EMailSprachcodeHinzufuegen.Show();
}
}
Danke im voraus
Hrm, am besten wäre hierfür das CommandPattern (Forum Suche: Action) Prinzip.
Wenn versuchst innerhalb eines MDI Containers Events von verschieden vielen Formularen abzuarbeiten wird das viel zu kompliziert.
Wichtiger ist das die Formulare vorgeben was der MDI Container überhaupt an Controls besitzen darf, wenn dieses den Focus besitzt. Mach deinen MDI Container zur Singleton, gebe z.B die Menüs nach aus. Wenn ein Form den zustand aktiviert besitzt lade die Menüs rein, wenn ein Form den Zustand deaktiviert besitzt dann lade dessen Menüs wieder heraus.
Die CommandPattern (Actions) machen nun Sinn da sich manche Menüaktionen wiederholen.
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(