Chiudere sottoform - Versione stampabile +- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi) +-- Forum: Programmazione (https://www.making-videogames.net/giochi/Forum-Programmazione) +--- Forum: Visual Basic, Visual Basic.Net (https://www.making-videogames.net/giochi/Forum-Visual-Basic-Visual-Basic-Net) +--- Discussione: Chiudere sottoform (/thread-Chiudere-sottoform) Pagine:
1
2
|
Chiudere sottoform - Dany - 07-09-2010 e rieccomi ad assilarvi (ahahah) vorrei chiudere il sottoform per non sovrapporre due sottoform uguali ho gia provato con due stringhe sottoform2.hide() mi da errore.. form2.hide() non funziona allora aiutino *-* RE: Chiudere sottoform - steve - 07-09-2010 quando apri un sottoform che deve andare al posto di un altro metti nel Button: nomeForm.Close() in caso il button è dentro al form che si deve chiudere: me.Close() o volendo puoi mettere nomeForm.Close() sotto Private Sub nomeFormDaTenereAperto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RE: Chiudere sottoform - Riddick - 07-09-2010 C'è una soluzione più che semplice. Metti la dichiarazione della variabile per la sottoform, sotto a: Public Class Form1. Ora nel button che servirà per chiudere la sottoform, devi usare questo codice: NomeDellaVariabile.Hide(). Faccio un esempio: Mettiamo che la variabile sia cosi: Dim nome As New Form2, nel button che servirà per chiudere la sottoform devi inserie questo codice: nome.Hide() RE: Chiudere sottoform - Dany - 07-09-2010 allora tutti questi vari codici fungono in un form a parte da quanto ne ho tratto ora risolvete l'enigma intricato che si cela dentro °-° so che parlo come in un investigativo punta e clicca ma sono fatto così comunque apparte l'ot eccovi la stringa con cui apro la sottoform dentro la form base Dim sottoform1 As New Form2 sottoform1.MdiParent = Me sottoform1.Show() una volta che io clicco il bottone questa form incalza a pennello dentro il form base e qua nessun problema ma mettiamo che io voglia aprire la form3 tadan cosa succede si sovrappongono! allora creo il bottone con scritto Dim sottoform1 As New Form3 sottoform1.MdiParent = Me sottoform1.Show() visualizza il form3 però sovrapposto allora ci aggiungo Dim sottoform1 As New Form3 sottoform1.MdiParent = Me sottoform1.Show() form2.hide() 'tentativo fallito' sottoform2.hide() 'stringa errata' form2.close() ' tentativo fallito' me.close() 'si è chiuso tutto' altre idee? RE: Chiudere sottoform - Riddick - 07-09-2010 Ho aggiustato il mio post precedente... RE: Chiudere sottoform - Dany - 07-09-2010 ho scritto dim form2.hide as new form2 ma non funziona (sicuramente ho sbagliato °-°) RE: Chiudere sottoform - Riddick - 07-09-2010 Oddeo, stavolta io mi sono spiegato più che bene, è una cosa cosi elementare da fare che pensavo che subito l'avessi capita xD. Rileggi bene quello che ho scritto, l'hide nella dichiarazione della variabile non c'entra nulla. RE: Chiudere sottoform - Dany - 07-09-2010 scusa dark legge a tratti ora ho capito °-° RE: Chiudere sottoform - steve - 07-09-2010 Codice: Public Class Form1 dichiara i sottoform come variabile globale (o meglio ancora utilizza i puntatori se ne sei capace). usa un nome diverso per ogni sottoform "sottoform1" associato a "form2" "sottoform2" associato a "form3" ecc... RE: Chiudere sottoform - Dany - 07-09-2010 Mi linci se ti dico che non funziona ti riporto Codice: Public Class Form1 edit by steve: per renderlo leggibile mettici Codice: [code] oppure Codice: [php] RE: Chiudere sottoform - Riddick - 07-09-2010 No close !!!!!! devi usare Hide !!!!! XD te lo spiegato col cucchiaio <.< e poi togli la dichiarazione della variabile nel button che non serve. RE: Chiudere sottoform - steve - 07-09-2010 Codice: Public Class Form1 close = chiudi hide = nascondi il codice è lo stesso, se lo ritieni opportuno sostituisci close con hide. per occupare meno memoria consiglio close per aumentare la preformance consiglio hide RE: Chiudere sottoform - Riddick - 07-09-2010 steve hai sbagliato anche te ! XD non deve essere cosi: sottoform1.Close() ma cosi: sottoform1.Hide(), prima lo spiegato in modo cosi corretto e pulito ò.ò Il close da errori dopo quando vai ad riaprire la form. RE: Chiudere sottoform - Dany - 07-09-2010 aveva ragione steve ora ho risolto grazie mille °-° RE: Chiudere sottoform - steve - 07-09-2010 (07-09-2010, 11:33 PM)Kira Ha scritto: steve hai sbagliato anche te ! XD non deve essere cosi: sottoform1.Close() ma cosi: sottoform1.Hide(), prima lo spiegato in modo cosi corretto e pulito ò.ò se chiami sottoform1.Close() per riaprirlo devi chiamare sottoform1.Dispose() se chiami sottoform1.Hide() per riaprirlo devi chiamare sottoform1.Show() la differenza principale l'ho scritta sopra: hide nasconde (il form è ancora aperto e pesa sulla ram) close chiude (il form non è più aperto, per aprirlo deve ricaricare tutto) comunque come ho già detto, in caso non gli va bene basta cambiare Close() con Hide(). non bisogna sconvolgere il codice. RE: Chiudere sottoform - Riddick - 07-09-2010 steve: show = mostra close = chiudi Non puoi mostrare una finestra chiusa RE: Chiudere sottoform - steve - 07-09-2010 cito me una 15ina di centimetri sopra XD steve Ha scritto:se chiami sottoform1.Close() per riaprirlo devi chiamare sottoform1.Dispose() RE: Chiudere sottoform - Dany - 07-09-2010 CON CLOSE Apro il sottoform2 chiudo il sottoform2 con il bottone con close clicco sul bottone del sottoform2 e mi dice che il form2 è gia stato eliminato! CON HIDE Apro il sottoform2 chiudo il sottoform2 con il bottone con hide clicco sul bottone del sottoform2 e si sovrappone con quello vecchio.. RE: Chiudere sottoform - steve - 07-09-2010 (07-09-2010, 11:50 PM)Dany Ha scritto: CON CLOSE cito me una 15ina e anche una 30 di centimetri sopra XD XD XD steve Ha scritto:se chiami sottoform1.Close() per riaprirlo devi chiamare sottoform1.Dispose() (07-09-2010, 11:50 PM)Dany Ha scritto: CON HIDE bugia... -.- ho provato e funziona anche con hide() Codice: Public Class Form1 RE: Chiudere sottoform - Dany - 07-09-2010 con hide si sovrappone ora vi faccio dei video asd RE: Chiudere sottoform - steve - 07-09-2010 più che i video dammi un pezzo di codice... con il codice che ti ho linkato sopra funziona (provato personalmente) RE: Chiudere sottoform - Riddick - 07-09-2010 steve con dispose a me non apre nulla. E poi cosa c'entra disporre con aprire o mostrare ? Comunque con hide si sovrappongono, è vero, perché hide nasconde la sottoform a noi ma al programma no. Ora vedo un po'. RE: Chiudere sottoform - Dany - 07-09-2010 eccone la prova u_u RE: Chiudere sottoform - steve - 08-09-2010 @Kira: allora lo ridichiari e fai prima... Codice: dim abcd as new Form2 @Dany: scritto e testato personalmente: Codice: Public Class Form1 hai sicuramente fatto qualche errore di codice RE: Chiudere sottoform - Dany - 08-09-2010 se leggi è uguale al mio caro u_u RE: Chiudere sottoform - Riddick - 08-09-2010 steve ha ragione Dany, le form si sovrappongono, io non ci avevo pensato, ma è una cosa palese, perché Hide nasconde, non chiude, è come se metti: nome.Visible = False, si sovrappongono lo stesso, il loro fantasma rimane xD. RE: Chiudere sottoform - steve - 08-09-2010 il file non mi funziona (l'hai chiamato prova.zip e mi scarica prova.exe), non è compatibile con i 64bit. il codice che ti ho scritto ti assicuro che funziona l'unico problemino, risolvibile, è che me lo avvia windowed (a finestra) e non maximized (a schermo intero, in modo che occupa tutta la form principale, come avevo impostato) RE: Chiudere sottoform - Riddick - 08-09-2010 Ho provati in altri modi, ma alla fine devi adottare questa soluzione che non mi piace molto... nel button che chiude la form metti: nome.Anchor = AnchorStyles.Left Non lo postato subito perché come modo non mi piace :| P.S: nome deve essere uguale al nome delle variabile per far chiudere la form capito no ? xD RE: Chiudere sottoform - Dany - 08-09-2010 La tua soluzione è spettacolare ho finito problema risoltissimo RE: Chiudere sottoform - steve - 08-09-2010 altrimenti, un pò più ortodossa, chiudi e riapri il form (testato e funziona) Codice: Public Class Form1 |