No. Lui si riferisce al SUO second frammento di codice.Originariamente inviato da iko82
Ti riferisci a questo?
Leggi bene...
![]()
No. Lui si riferisce al SUO second frammento di codice.Originariamente inviato da iko82
Ti riferisci a questo?
Leggi bene...
![]()
Si è vero MA... a parte che una volta chiuso il form di login perchè l 'autenticazione è andata a buon fine mi visualizza la schermata principale del telefono e dopo qualche secondo mi riapre il mio secondo form. Non è un "errore" non chiamare Application.Run() ?
Il message pump viene eseguito lo stesso nella maniera corretta anche senza questa chiamata?
Originariamente inviato da Pirelli72
No a questo:
codice:[MTAThread] static void Main() { Form1 myform1 = new Form1(); myform1.ShowDialog(); if (myform1.isLogged) { Form2 myform2 = new Form2(); myform2.ShowDialog(); } }
Si in effetti a quel problema...piccolo rimedio:
codice:[MTAThread] static void Main() { Form2 myform2 = new Form2(); Form1 myform1 = new Form1(); myform2.Visible = false; myform2.Show(); myform1.ShowDialog(); if (myform1.isLogged) { myform2.Visible = true; myform2.ShowDialog (); } }
Sbagliare è umano, perseverare è diabolico.
Si infatti avevo pensato anche io ad una cosa del genere.
Ma è formalmente corretta una soluzione cosi?
Originariamente inviato da Pirelli72
Si in effetti a quel problema...piccolo rimedio:
codice:[MTAThread] static void Main() { Form2 myform2 = new Form2(); Form1 myform1 = new Form1(); myform2.Visible = false; myform2.Show(); myform1.ShowDialog(); if (myform1.isLogged) { myform2.Visible = true; myform2.ShowDialog (); } }
No, infatti ti avevo suggerito di caricare il Form2 dal Form1 ad autenticazione avvenuta.
Sbagliare è umano, perseverare è diabolico.
Ok, mettiamo che nel mio metodo di conferma dati di login abbia:
in questo modo una volta riconosciuto l'utente partirebbe il form principale dell'applicazione.Codice PHP:
private void ok_Click(object sender, EventArgs e)
{
if (cf.login(txtUser.Text, txtPassword.Text))
{
logged = true;
frmMain main = new frmMain();
main.ShowDialog();
}
}
Il form di login però non verrebbe mai ucciso continuando ad occupare risorse... Sbaglio?
Mi pare di capire che con windows forms non serva molto avere un file che contiene il main() in cui cablare semplicemente la logica dell'applicativo (come si userebbe fare in c/c++). Tanto vale mettere l'entry point all'interno del primo form giusto?
Originariamente inviato da Pirelli72
No, infatti ti avevo suggerito di caricare il Form2 dal Form1 ad autenticazione avvenuta.
A voler comunque essere pignoli c'è il problema opposto cosi...
Ovvero all'avvio c'è lo sfarfallio del passagio dalla finestra main a quella di login...
Purtroppo sono problemi ridicoli lo so, me ne rendo conto, ma sono fra le prime cose che vedono gli utenti![]()
Originariamente inviato da Pirelli72
Si in effetti a quel problema...piccolo rimedio:
codice:[MTAThread] static void Main() { Form2 myform2 = new Form2(); Form1 myform1 = new Form1(); myform2.Visible = false; myform2.Show(); myform1.ShowDialog(); if (myform1.isLogged) { myform2.Visible = true; myform2.ShowDialog (); } }
A parte che non ho capito cosa sia 'cf.login', ad ogni modo il form principale, ovvero quello di Login come dici tu non potrai chiuderlo altrimenti terminerà anche l'applicazione.Originariamente inviato da iko82
Ok, mettiamo che nel mio metodo di conferma dati di login abbia:
in questo modo una volta riconosciuto l'utente partirebbe il form principale dell'applicazione.Codice PHP:
private void ok_Click(object sender, EventArgs e)
{
if (cf.login(txtUser.Text, txtPassword.Text))
{
logged = true;
frmMain main = new frmMain();
main.ShowDialog();
}
}
Il form di login però non verrebbe mai ucciso continuando ad occupare risorse... Sbaglio?
Mi pare di capire che con windows forms non serva molto avere un file che contiene il main() in cui cablare semplicemente la logica dell'applicativo (come si userebbe fare in c/c++). Tanto vale mettere l'entry point all'interno del primo form giusto?
Sbagliare è umano, perseverare è diabolico.
Io farei così:
in cui m_bLogin è una proprietà/variabile public di frmLogin che viene posta a true o false a seconda che la verifica del Login abbia avuto o meno successo.codice:[STAThread] static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frmLogin fLogin = new frmLogin(); fLogin.ShowDialog(); Boolean bSuccess = fLogin.m_bLogin; if (bSuccess) { Application.Run(new frmMain()); } }
Se è true apre il frmMain, altrimenti fine della storia.
![]()
Ok grazie.
Ma qualcuno mi sa spiegare la differenza fra lanciare il .ShowDialog() e lanciare Application.Run() ?
Ho letto cose abbastanza contrastanti... A quanto pare non cambia poi molto nel gestire tutta l'applicazione con le ShowDialog.
grazie
ciao
Fede
Originariamente inviato da gibra
Io farei così:
in cui m_bLogin è una proprietà/variabile public di frmLogin che viene posta a true o false a seconda che la verifica del Login abbia avuto o meno successo.codice:[STAThread] static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frmLogin fLogin = new frmLogin(); fLogin.ShowDialog(); Boolean bSuccess = fLogin.m_bLogin; if (bSuccess) { Application.Run(new frmMain()); } }
Se è true apre il frmMain, altrimenti fine della storia.
![]()