Problema con i form

sabato 22 gennaio 2005 - 14.28

SuperSasch2004 Profilo | Newbie

Ciao a tutti ... mi sono convertito da poco al VB.NET e devo dire che è molto più interessante che visual basic 6 ... però ho un grosso problemone ... ovvero giocare con i forms ...
vi spiego ... sto costruendo un applicazione in VB.NET che interagisce con il mysql ... e ho 2 form ... il primo è il login e il secondo è il menu ...
Una volta che un utente effettua il login si dovebbre aprire la finestra del menu e chiudere quella del login ...
perciò io avrei scritto questo

dim m as menu=new menu
m.show()
me.close()

il problema è che eseguito questoi codice mi si chiude l'applicazione ... tante volte mica sapete dirmi il perchè ... grazie mille ...

by SuperSasch2004

Cteniza Profilo | Guru

Devi fare la tua applicazione in modo che alla partenza "alzi" la finestra di login come prima cosa.
Esempio:
Sub Main()
if "variabile utente non impostata" then
dim flogin as new FrmLogin
IF frm.ShowDialog <> DialogResult.OK then exit sub
end if
dim fmain as new MainForm
fmain.ShowDialog
End Sub

Personalmente fare invece la stessa cosa sull'evento load della form principale

MainForm_Load()
if "variabile utente non impostata" then
dim flogin as new FrmLogin
IF frm.ShowDialog <> DialogResult.OK then me.Close
end if
End Sub
In entrambi i casi sulla form di login gestisci l'autenticazione

trinity Profilo | Guru

SuperSasch2004
in vb net quando devi interagire con due o più form ed invaire dati oppure eseguire delle operazioni, c'è bisogno che alla form di destinazione vi vengano inviate delle di convalida dell'operazione come ti ha fatto vedere nel post Cteniza
, nell'help di vb vedi un pò come funziona lo ShowDialog in tutto le sue funzionalità, ti sarà sempre utile.

Ciao
Fabio

alextyx Profilo | Expert

Sono un po' di fretta e quindi potrei prendere lucciole x lanterne, ma se ho capito bene, il tuo problema è che la form che vai a chiudere è anche l'oggetto di partenza del tuo progetto. Se vuoi evitare che chiudendola ti venga chiusa anche l'applicazione, devi impostare la parteza da Sub Main (Progetto ----> Proprietà) e lì eseguire lo Show della tua form e poi lanciare l'applicazione con il comando Application.Run(). senza argomenti tra le parentesi. In questo modo l'applicazione terminerà con l'istruzione Application.exit e nn con la chiusura del tuo form principale.
Qualcosa di simile:

Module Module1

Public F1 As Form1

Public Sub Main()
F1 = New Form1
F1.Show()
Windows.Forms.Application.Run()
End Sub

End Module


Buon lavoro e ....ricordati di Application.exit per chiudere l'applicazione! :-)
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5