Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63

    [C#] caricare secondo form in CF

    Ciao, ho un problema con il Compact Framework.
    Ho una classe statica con il mio main() che chiama con Application.Run(); il form di login. Una volta autenticato l'utente lo chiudo con this.Close; a questo punto si ritorna al metodo main() che dovrebbe eseguire un secondo Application.Run(); con un nuovo form, quello dell'applicazione vera e propria.
    Purtroppo non funziona. Al ritorno nel main() viene creato il secondo form in memoria ma Application.Run() non lo avvia e fa terminare l'applicazione.

    Codice PHP:

    [MTAThread]
    static 
    void main() {

    frmLogin login = new frmLogin(userpasswd);
    Application.Run(login);

    frmCards cards = new frmCards();
    Application.Run(cards);


    Sbaglio qualcosa? Qualche idea o suggerimento?

    grazie
    ciao
    Fede

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ma scusa far partire il Form2, una volta autenticato, dal Form1 ??
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    application.run deve essere chiamato solo una volta.. per var vedere il nuovo form basta fare:

    cards.Show();

  4. #4
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Originariamente inviato da Pirelli72
    Ma scusa far partire il Form2, una volta autenticato, dal Form1 ??
    Si in alternativa potrei fare anche cosi... Però mi sarebbe piaciuto capire perchè non funziona. Oltretutto mi pareva più pulito una volta terminato il form con un valore true o false avviare o meno il secondo form.

  5. #5
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Originariamente inviato da Stoicenko
    application.run deve essere chiamato solo una volta.. per var vedere il nuovo form basta fare:

    cards.Show();
    Purtroppo avevo già provato anche cosi... Ma non funziona...

    Codice PHP:
            [MTAThread]
            static 
    void Main()
            {
                
    frmLogin login = new frmLogin();
                
    Application.Run(login);

                
    frmCards cards = new frmCards();
                
    cards.Show();
            } 
    Appena terminato il form di login con this.Close(); mi fa terminare l'applicazione

    Non capisco proprio....

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non capisco in questo modo come fai capire se l'autenticazione abbia avuto successo!

    codice:
    frmLogin login = new frmLogin(); 
                Application.Run(login); 
    
                frmCards cards = new frmCards(); 
                cards.Show();
    Forse così:

    codice:
     [MTAThread]
            static void Main()
            {
                Form1 myform1 = new Form1();
                myform1.ShowDialog();
    
                if (myform1.isLogged)
                {
                    Form2 myform2 = new Form2();
                    myform2.ShowDialog();
                }
            }
    Sbagliare è umano, perseverare è diabolico.

  7. #7
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Si certo, in quel pezzo di codice non c'era nulla dell'autenticazione, era per semplificare.
    Quello che non capisco è il perchè una volta chiuso il form di login l'applicazione esca correttamente da Application.Run() e proceda nell'esecuzione del main() ignorando però il successivo Application.Run() o form.Show()


    Originariamente inviato da Pirelli72
    Non capisco in questo modo come fai capire se l'autenticazione abbia avuto successo!

    codice:
    frmLogin login = new frmLogin(); 
                Application.Run(login); 
    
                frmCards cards = new frmCards(); 
                cards.Show();
    Forse così:

    codice:
     [MTAThread]
            static void Main()
            {
                Form1 myform1 = new Form1();
                myform1.ShowDialog();
    
                if (myform1.isLogged)
                {
                    Form2 myform2 = new Form2();
                    myform2.ShowDialog();
                }
            }

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Il secondo frammento di codice funziona.
    Sbagliare è umano, perseverare è diabolico.

  9. #9
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Ti riferisci a questo?

    Codice PHP:
    [MTAThread
            static 
    void Main() 
            { 
                
    frmLogin login = new frmLogin(); 
                
    Application.Run(login); 

                
    frmCards cards = new frmCards(); 
                
    cards.Show(); 
            } 
    A me no


    Originariamente inviato da Pirelli72
    Il secondo frammento di codice funziona.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    No a questo:

    codice:
    [MTAThread]
            static void Main()
            {
                Form1 myform1 = new Form1();
                myform1.ShowDialog();
    
                if (myform1.isLogged)
                {
                    Form2 myform2 = new Form2();
                    myform2.ShowDialog();
                }
            }
    Sbagliare è umano, perseverare è diabolico.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.