Laden...

MDI-Parent mitteilen wenn Childs was tun

Erstellt von Atomroflman vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.208 Views
A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 14 Jahren
MDI-Parent mitteilen wenn Childs was tun

Hallo Leute,

Ich habe ein MDI, dem Parent möcht ich nun mitteilen wenn sich eines der ChildForms schliesst, ein neues hinzukommt oder eins aktiv wird...

Welches event kann ich dafür benutzen?

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Atomroflman,

sowas solltest du selbst in der Doku nachschlagen.

Form.Closed
Form.Activated
Und das Erzeugen musst du selbst mitbekommen.

herbivore

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 14 Jahren

Das Problem dabei ist aber dass ich im MDI wissen möchte ob eines der darunter liegenden Fenster grade Aktiv ist... oder ob sich das Property
"ActiveMdiChild"
ändert...

Nur leider bekommen die Fenster ja nie den Fokus, jedenfalls springt das event nicht an wenn man in ein ChildFenster reinklickt...

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

731 Beiträge seit 2006
vor 14 Jahren

Hi atomroflman,

von welchem Event ist denn die Rede?
Von "MdiChildActivate" ?

MfG
wax

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 14 Jahren

MDIChildActivate funktioniert auch nicht...
ich habe GotFokus genommen

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 14 Jahren

Also ich versuch noch mal mit einer ausführlichen Erklärung...

Ich habe ein MDI-Parent mit einer Toolbar und ich habe x MDI Childs...
Jetzt möchte ich feststellen wann sich das aktive MDI Child ändert und natürlich auch welches das neue ist...

Wenn ich jetzt sage:


        private void Main_MdiChildActivate(object sender, EventArgs e)
        {
            SetToolBarState(this.ActiveMdiChild);
        } 

Springt er irgendwie nie da rein...

Habe auch versucht jedem MDI-Child ein GotFocus zuzuordnen:


        private void btnStartModule_Click(object sender, EventArgs e)
        {
            int Modnr;
            if (int.TryParse(tbModStart.Text, out Modnr))
            {
                Form SubForm = FormLoader.OpenForm(Modnr);
                if (SubForm != null)
                {
                    SubForm.GotFocus += new EventHandler(SubForm_GotFocus);
                }
            }           
        }

        void SubForm_GotFocus(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }

Da springt er komischerweise erst rein wenn ich das Fenster schliesse...

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

731 Beiträge seit 2006
vor 14 Jahren

Hi,

also bei mir reicht MdiChildActivate aus. Damit bekomme ich immer mit, wenn ein MdiChild angeklickt und somit aktiv wird.

Vielleicht hast Du die MdiParent-Eigenschaft des Child-Fensters nicht gesetzt?

MfG
wax

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 14 Jahren

Ich habe gerade heraus gefunden dass meine Childs NIEMALS den fokus bekommen... die Leiste oben am ChildFenster bleibt immer grau, daher wohl auch kein MdiChildActivate...

Nur leider kann ich mir nicht erklären warum das so ist...
Hat jemad ne Idee??

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

731 Beiträge seit 2006
vor 14 Jahren

Ich glaube wenn Du mal etwas mehr Code zeigen würdest, könnte schnell geholfen werden. 😄

MfG
wax