Brothers Inserito: 19 giugno 2005 Segnala Inserito: 19 giugno 2005 Vi chiedo un parere su questo problema:Ho una Toolbar in un programma in costruzionee vorrei che all'apertura di ogni formMDI chiudessei formMDI eventualmente gia aperti.La soluzione che ho adottato è quella qui sottoFunge, ma come facilmente intuirete rende tutto più macchinoso e "sfarfallante" inoltre impegnamolte più risorse.credo che sia perche esegue lo stesso la chiusura ditutti i form anche non trovandoli aperti.Credo di sapere ,per intuito ,che si puo fare di megliosapreste darmi un consiglio----------------------------------------------------------------------------Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "Resolve" 'Commento solo il primo gli altri vanno da se. 'Chiude i form eventualmente aperti. frmAdapt.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmConnection.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide 'Visualizza il form. frmResolve.Show Case "Adapt" frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmConnection.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide frmAdapt.Show Case "Trace" frmAdapt.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmConnection.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide frmTrace.Show Case "Scan" frmAdapt.Hide frmBrowser.Hide frmBrowser1.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmConnection.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide frmScan.Show Case "Connection" 'Lancia attive.bat. WinExec CdBox.Filename, 10 frmAdapt.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide frmConnection.Show Case "NetWork" frmAdapt.Hide frmConnection.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmTrace.Hide frmNet.Hide frmAttachment.Hide frmNetWork.Show Case "Server" frmNetWork.Hide frmAdapt.Hide frmConnection.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmSys.Hide frmTrace.Hide frmAttachment.Hide frmNet.Show Case "AnonyMailer" frmAdapt.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmConnection.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmSys.Hide frmAttachment.Show frmMail.Show Case "System" frmAdapt.Hide frmScan.Hide frmBrowser.Hide frmBrowser1.Hide frmConnection.Hide frmDocument.Hide frmLogConnection.Hide frmSplash.Hide frmTrace.Hide frmNetWork.Hide frmNet.Hide frmAttachment.Hide frmSys.Show Case "Esc" On Error Resume Next If MsgBox(" Sicuro di voler uscire?", vbYesNo) = vbNo Then Exit Sub Unload Me EndEnd SelectEnd Sub
Livio Orsini Inserita: 19 giugno 2005 Segnala Inserita: 19 giugno 2005 Io, di solito, quando apro un novo form chiudo il precedente. In questo modo te la cavi con una riga di istruzione. Lascio i form aperti solo quando è indispensabile come, ad esempio, quando al form è legato un timer che deve continuare ad operare.
Brothers Inserita: 19 giugno 2005 Autore Segnala Inserita: 19 giugno 2005 grazie e scusa la mia ignoranza sono molto principiantema io ho una Toolbar con molti pulsanti e non sono tutti relativi cioesi puo passare indipendentemente da un form all'altro non sono a scelta obbligatoria e passando ad un altro form vorrei che qualunque form sia aperto si chiuda (questo perche non so dare una filologica di quale dovrebbe rimanere aperto ) cosi che poi quando chiudo un form deve aprirsi il form frmSplashuna specie di about con le informazioni sul programma.Ma forse non ho capito bene la tua risposta
Brothers Inserita: 19 giugno 2005 Autore Segnala Inserita: 19 giugno 2005 come fa il programma a sapere qual'è il form momentaneamente aperto per poterlo chiudere?non c'e una istruzione standard per dire:qualunque sia il form aperto si chiuderàgrazie anticipate
JumpMan Inserita: 19 giugno 2005 Segnala Inserita: 19 giugno 2005 Io (che sono autodidatta, ma smanetto spesso in VB) farei così:Esempio che nasconde tutte le form : Dim frm As Form For Each frm In Forms ‘Nasconde le form tranne frmMain (che supponiamo sia la MDI principale) If frm.name <> "frmMain" Then frm.hide ‘Oppure le scarica dalla memoria: ‘ If frm.name <> " frmMain " Then unload frm. Next Senti anche altre “campane” più esperte…
Brothers Inserita: 21 giugno 2005 Autore Segnala Inserita: 21 giugno 2005 grazie mille lo stesso ma smanettando ho risolto cosi 'Con questa istruzione chiudo qualsiasi form aperto. ActiveForm.Hide 'Poi gli passo le istruzioni di quale form voglio aprire(per esempio: frmSys.Show 2 righe soltanto e funzia benissimo
bigalex Inserita: 21 giugno 2005 Segnala Inserita: 21 giugno 2005 (modificato) Se non sbaglio con il metodo Hide non scarichi il form dalla memoria .Con Hide lo nascondi alla vista ma il form relativo rimane caricato quindi la gestione delle risorse non è ottimale .Per scaricare il form devi usare il metodo Unload come già segnalato precedentemente .Se comunque il funzionamento ti aggrada procedi come hai fatto .bigalex Modificato: 21 giugno 2005 da bigalex
Brothers Inserita: 21 giugno 2005 Autore Segnala Inserita: 21 giugno 2005 no anzi provvedo subito con i form che devono terminarsi e lascero hide per quelli con timer grazie mille ciao
Brothers Inserita: 21 giugno 2005 Autore Segnala Inserita: 21 giugno 2005 Scusate ancora ma dove trovo l'insieme MSDN da scaricare che non ho il cd(non ho manco uno straccio di manuale)Lo ammetto ho il vb6 a scrocco è grave?
Livio Orsini Inserita: 21 giugno 2005 Segnala Inserita: 21 giugno 2005 Lo ammetto ho il vb6 a scrocco è grave?
Hellis Inserita: 21 giugno 2005 Segnala Inserita: 21 giugno 2005 ...e non dimenticare nemmeno i "vangeli" di Francesco Balena.
JumpMan Inserita: 21 giugno 2005 Segnala Inserita: 21 giugno 2005 2 righe soltanto e funzia benissimo
Brothers Inserita: 23 giugno 2005 Autore Segnala Inserita: 23 giugno 2005 (modificato) 1* Grazie "ragazzi" per le dritte sui manuali------------------------------------2* No no non sono cosi tanti form aperti perche ad ogni apertura di form do l'istruzione ActiveForm.HideoppureActiveForm.UnloadChe mi chiude il form precedentemente apertoFunziona egregiamente (per ora almeno)------------------------------------Diavolo di un Urbani ------------------------------------PLC Forum = Gran Forum Modificato: 23 giugno 2005 da Brothers
omabra Inserita: 17 luglio 2005 Segnala Inserita: 17 luglio 2005 L'msdn è consultabile on line se non sbaglio, se hai una connesione flat non dovresti avere problemi...per il resto c'è google...
Brothers Inserita: 18 luglio 2005 Autore Segnala Inserita: 18 luglio 2005 Gprs , 56K (teorici) per cui non ti dico i problemi , che probabilmente comprende solo chi ha provato sto tipo di collegamentoCiao
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora