Ho pensato di non far visualizzare la form chiamante.Tipo :
Me.Hide
ProgettoTotVis.ShowModal
Me.Show
Risultato : Me.hide funziona, visualizzo correttamente ProgettoTotVis.ShowModal però non riesco a ridare il controllo al form chiamante.
Torna addirittura al Main.
Ho provato anche
NomeForm1.Hide
ProgettoTotVis.ShowModal
NomeForm1.Show
Stesso risultato.
Si può operare in questo modo?
prova con
Me.Hide
ProgettoTotVis.ShowModal
Me.Showmodal
Devi rimostrare il form principale nella sub di chiusura di quello richiamato....se ad esempio hai un form principale FMain ed un form che richiami FChiamato allora devi fare così:
in FMain apri FChiamato mentre in FCHiamato dai
PUBLIC SUB Form_Close()
FMain.Show()
END
Purtroppo non funziona.
Quando provo a chiudere la Form2 questa non si chiude, anche se sotto di essa si vede l'apertura della Form1. Altro problema : la Form1 che viene riaperta e nella quale erano stati inseriti dei dati, viene completamente resettata. Morale la Form2 non si schioda dal video. C'è qualcosa che le impedisce di chiudersi.
Questa modalità la vorrei gestire per evitare di avere a video molte forms aperte contemporaneamente.
Leggendo i post di questa discussione, mi sono tornate in mente notazioni fattemi da amici del Forum sulla sconvenienza di pensare oggigiorno, con le grosse capacità di RAM disponibili, al risparmio di spazio. Riportando tale ragionamento sul caso da te prospettato, noto che gestisci solamente tre Form. Mi sembra che sia un impegno di spazio non impossibile da gestire dentro un PC attuale, per cui io non mi preoccuperei più di tanto e, nel richiamare la Form dipendente, agirei sulla proprietà "visible" della Form chiamante:
Form2.ShowModal
Me.Visible = False
Nella Form2, per rientrare nella Form1, scriverei:
Form1.Visible = True
Me.close
Dovresti così tornare alla Form1 senza perdere niente di quello che avevi al momento della chiamata della Form2.
Quello che vorresti fare tu é ottimale, ma per riottenere la Form1 con quello che avevi prima dell'Hide, dovresti andare a ricostruire i dati precedenti, con evidente impegno di spazio in memoria in termini di codice. Alla fine, se riuscissi a guadagnare qiualcosa, sarebbe, ben poca cosa.
:)
Ciao.
Public Sub BTN_VisAvProgetto_Click()
ProgettoTotVis.TB_SiglaProgetto.Text = Me.TB_SiglaProgetto.Text
ProgettoTotVis.TB_DesProgetto.Text = Me.TB_Descrizione.Text
ProgettoTotVis.VB_AnnoProgetto.Value = Me.VB_AnnoProgetto.Value
ProgettoTotVis.ShowModal
Me.Visible = False
End
Public Sub BTN_Chiudi_Click()
InsDatiMensili.Visible = True
Me.close
End
Posto la parte di codice col le sub interessate. Purtroppo non funziona. Quando chiudo ProgettoTotVis la Form InsDatiMensili resta invisibile.
Mistero ....
Il problema comunque non era quello di risparmiare spazio, bensì un fattore estetico. Volevo avere quando necessario, la possibilità di avere sul video solo la form aperta senza form sottostanti, esclusivamente per un problema di pulizia della videata.