Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Chiudere tutti i form figlio
mercoledì 15 aprile 2009 - 22.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
mer 15 apr 2009 - 22:49
Ciao a tutti,
Ho creato un programma in vb2008, in un form MDI ho inserito uno splitcontainer e ho una serie di altri form ai quali ho disattivato il minimizzedbox, il maximizedbox e il controlbox, in base ai comandi che l'utente richiama apro alcuni form in modalità child e vi associo come parent uno dei pannelli dello split.
Il mio problema è che quando chiudo il form mdi mi rimane attivo un processo e mi sono accorto che per risolvere il mio problema basta chiudere i vari form child aperti, esiste un comando da inserire nell'evento formclosing del form mdi che mi permetta di controllare quali sono i form ancora aperti e chiuderli?
Grazie a tutti.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
mer 15 apr 2009 - 23:12
Ciao
Se sei partito con un form MDIParent1 nel MenuStrip sotto Finestre --> Chiudi tutte, dovresti trovare questo codice
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
che dovrebbe risolverti il broblema
Ciao
alexmed
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
mer 15 apr 2009 - 23:24
Ciao ho provato ad inserire il codice che mi hai postato nell'evento formclosing ma il debug non entra neanche nel ciclo.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
mer 15 apr 2009 - 23:38
Ciao,
se metti questo codice
For Each ChildForm As Form In Me.MdiChildren
MsgBox(ChildForm.Name)
Next
in un button, cosa succede?
alexmed
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
mer 15 apr 2009 - 23:41
Niente.....
Se può aiutare quando apro il form faccio così:
FrmFunEliminaPunti.MdiParent = Me
FrmFunEliminaPunti.Parent = Split2.Panel2
FrmFunEliminaPunti.Dock = DockStyle.Fill
FrmFunEliminaPunti.Show()
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
mer 15 apr 2009 - 23:59
Scusa, solo una precisazione:
come si chiama il processo che ti resta aperto?
PS
il nome completo.
alexmed
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
gio 16 apr 2009 - 16:03
Il programma si chiama prova e il processo che mi rimane aperto è Prova.vshost.exe, se lo termino manualmente dal task manager si interrompe il debug
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
gio 16 apr 2009 - 16:26
Ciao
Aspettando eventuali smentite dai più esperti, ti posso dire che quel processo viene generato da Visual Studio quando apri un progetto.
Quindi nessuna paura.
Prova a chiudere e riaprire il progetto con TaskManager aperto
Ciao
alexmed
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
ven 17 apr 2009 - 10:15
Si quel processo viene aperto quando lancio il debug e normalmente viene terminato quando termino il debug ma stavolta non viene terminato e ho notato che se chiudo il form aperto in modalità child e associato al pannello prima di chiudere il formmdi anche quel processo termina.
Infatti se chiudo direttamente l'mdi col child ancora nel pannello quando torno alla videata di vb l'icona di "run" del debug è disabilitata ed è abilitata quella di "stop" , in pratica il debug è ancora attivo.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
ven 17 apr 2009 - 11:42
Ciao
Potresti fare ancora una prova
Nell'evento FormClosing puoi mettere il .Dispose dello SplitContainer
Ciao
alexmed
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
ven 17 apr 2009 - 12:45
Ho provato il .dispose applicato apllo split e non è cambiato niente poi ho provato applicandolo ai pannelli dello split e non è cambiato niente neanche così
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !