Newsgroup: it.comp.lang.visual-basic
Titolo: [NET]Qualcuno mi può spiegare questa cosa.......

allora ho provato a fare una cosa molto semplice ovvero:
creo 2 form ognuna con un bottone quando premo il bottone nella form1 deve
visualizzare la form2 e chiudersi.....o provato vari sistemi ma proprio nn
mi riesce è una cosa così banale che un pò mi vergogno però nn riesco a
farlo......vi posto il codice se cè qualcuno che già lavora con 
VB.NET
 mi
può dire dove sbaglio.....
Grazie a tutti.
Andrea
------------Codice----------
Module Module1
    Public frm3 As New Form3()
    Public frm1 As New Form1()
Sub main()
    ' Se apro la form con frm1.show  si apre ma poi si richiude
subito.....nn capisco perchè
    frm1.ShowDialog()
end Sub
Public Sub showform(ByVal frm As Form)
    frm.Show()
End Sub
Public Sub closeform(ByVal frm As Form)
    frm.Close()
End Sub
End Module
--------- Form 1----------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
    showform(frm3)
End Sub
--------- Form 3----------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
    ' Se chiudo la form1 si chiude anche il programma......nn capisco il
perchè in quanto il progetto di avvio è il module1
    closeform(frm1)
End Sub

Non chiudere il form...nascondilo semplicemente perchè è vero che sono
dichiarati globali i form, ma sono tipo variabili, quindi se tu chiudi il
form, si chiude anche l'altro form perchè lo hai chiamato dal processo che
stai chiudendo.
Usa form.hide e vedi che funzionerà
--------------------------------
Inviato via 
http://usenet.libero.it


Questo lo sapevo già, era la prima cosa che avevo fatto, grazie cmq per la
spiegazione.
Però in VB6 funzionava tranquillamente, ma probabilmente perchè VB6 ti
nascondeva molte magagne.....
Grazie ancora
Andrea

 nella form1 deve visualizzare la form2 e chiudersi
Ho realizzato la cosa tempo fa', per cambiare al volo la
localizzazione della form (scegliendo una voce di menu cambiava il
linguaggio dell'applicazione dall'inglese all'italiano o al turco e
viceversa), non ho il codice sottomano ma ricordo di aver utilizzato i
thread (creavo nuovi thread con una cultura differente).
--
ale
www.sen.it

 subito.....nn capisco perchč
Non ricordo 
vb.net
, ma con c# devi (come in altri linquaggi un po' piů
"seri" di VB) usare:
Application.Run(frm1);
per indicare all'app. che frm1 č il form principale, altrimenti una volta
che la var (frm1) ha esaurito il suo compito (.show) viene terminata.
Ciao
--
using System.Gtk.Forms = "
http://www.neodatatype.net/windowsforms/sgf.aspx
"
mathParser = "
http://www.neodatatype.net
"
sitoComune = "
http://www.it-lang-vb.net
"


Cavolo che sistema ingegnoso.....
Grazie per la risposta......
Ciao
Andrea


idem in 
VB.NET
 :-) Il bello del CLR è proprio che le soluzioni sono nel
framework, e non nel linguaggio
.A
UGIdotNET - 
http://www.ugidotnet.org


Infatti la mia applicazione a come oggetto di avvio la 'sub main' nel
'module1'......però se chiudo la Form1 e o ancora aperta la Form2 mi termina
il programma....questo nn lo capisco.....boh!!!!
Grazie ancora
Ciao
Andrea

 il programma....questo nn lo capisco.....boh!!!!
Proprio perchč non č piů il form a tenere in piedi l'app, ma viceversa,
com'č giusto che sia.


 Andrea


 perchè in quanto il progetto di avvio è il module1
se la mia ipotesi di prima è corretta, il codice della sub main, una volta
chiusa la form1, riprende a "scorrere", portando rapidamente il programma
alla conclusione.
Salutoni
Sergio

Grazie a tutti per le vostre risposte
Ciao
Andrea