vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Event im MDI beim schliessen eines ChildWindows 
Autor: Amlor (Ole Wengler)
Datum: 13.01.02 13:16

Hi Folks

Folgendes Problem: in meinem MDI Projekt kann der Benutzer eine beliebige Anzahl von Childwindows gleichen Types erstellen. Beim erzeugen eines neuen Child wird in einem Splitterwindow ein Icon mit einem entsprechenden Key angelegt. Nun hab ich die Möglichkeit jedes Child über ein Icon im Splitter anzusprechen (in den Vordergrund holen etc).

Jetzt müsste ich aber dieses Icon auch löschen, wenn der Benutzer das Child schliesst. Leider bekomme ich im das MDI nicht mit und im Child kann ich bei Unload nicht auf das Parent zugreifen (Das Splitterwindow wird über das MDI angesprochen).

Hat irgendwer ne Idee oder eine Möglichkeit, wie ich ein Parentobjekt erschaffen kann, um vom Child aus auf das MDI zugreifen zu können, oder (was mir auch helfen könnte) wie ich ein Event im MDI erschaffen kann, so dass ich dort mitbekomme das ein Child geschlossen worden ist.

Ich würde das nicht gerne mit nem Timer realisieren der die ganze Zeit überprüft ob alle Child noch da sind.

Thx jetzt schonmal und noch schönen Sonntag

Amlor
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Event im MDI beim schliessen eines ChildWindows 
Autor: ModeratorDieter (Moderator)
Datum: 13.01.02 13:25

Hi Amlor,

immer wenn ein Child-Window geschlossen wird, wird auch ein Form_QueryUnload Event ausgelöst. D.h. hier hast Du z.B. die Möglichkeit das Schliessen zu verhindern oder auch andere Dinge zu erledigen.

Cu
Dieter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Aber: 
Autor: Amlor (Ole Wengler)
Datum: 13.01.02 13:46

Ja. Im Child bekomm ich sowohl Form_QueryUnload und Form_Unload mit, kann aber nicht auf das MDI zugreifen. Im MDI zählt Form_QueryUnload auch nur für das MDI ansich, nicht aber für ein Child.

Mein Problem ist ja das ich ein SubItem aus einer ListView des MDI löschen muss und das in dem Moment wo ein Child gelöscht wird. Also müsste ich das SubItem aus dem Child löschen (dafür bräuchte ich ein Parentobjekt -> Parent.ctr_ListView:SubItem:Remove(index) ) oder ich bräuchte ein Event im MDI

MDIForm_ChildKilled (ChildID As wasweissich)
me.ctr_ListView:SubItem:Remove(index) )
...

ich hoffe so konnte ich es ein wenig klarer machen.. das andere wäre ja auch sicher eine 'Anfängerfrage' ;)

Thx trotzdem für die schnelle Antwort
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aber: 
Autor: ModeratorDieter (Moderator)
Datum: 13.01.02 13:55

Hallo Amlor,

da ein Projekt ja nur eine einzige MDI-Form zulässt, kannst Du im Child doch direkt auf die MDI-Form zugreifen!
<font color=green>' im Child</font>
myMDIForm.ctrl_ListView...
Cu
Dieter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Dachte ich auch 
Autor: Amlor (Ole Wengler)
Datum: 13.01.02 13:57

nur kommt dann immer die Fehlermeldung 'Only one MDI Form allowed'
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dachte ich auch 
Autor: ModeratorDieter (Moderator)
Datum: 13.01.02 14:04

Hi Amlor,

wann genau kommt diese Meldung und wie sieht der Code aus?

Cu
Dieter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Code & Fehlermeldung 
Autor: Amlor (Ole Wengler)
Datum: 13.01.02 14:15

Private Sub Form_Unload(Cancel As Integer) 'Event des ChildWindows
frmMain.ctr_lv.ListItems.Remove (Me.Caption) ' Die SubItems haben als Key die
' Caption des ChildWindows und sollten über den erkannt werden.
Me.Hide
End Sub

Fehlermeldung:

Run-time error '426'

Only one MDI Form allowed

Bei Debugg zeigt er mir diese:

frmMain.ctr_lv.ListItems.Remove (Me.Caption)

Zeile an

Die Hilfe zeigt mir das Kapitel über Form Window an.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Ich doof... 
Autor: Amlor (Ole Wengler)
Datum: 13.01.02 15:19

Ab und zu ist es dann doch einfach nur ein Wort, welches fehlt.

MDIForm:
private m_Child as Form

sub InitMDI
set m_child = new ChildForm
end sub

So macht es ja jeder.. wenn man jetzt aber

private withevents m_Child as Form

schreibt hat man alle Events des childforms und kann

private sub m_Child_Unload
HIER DAS ICON LÖSCHEN
end sub

THX trotzdem.. an nem So findet man selten Hilfe.

so long

Amlor
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel