Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    74

    vb.net : application.exit non esce dalla procedura

    Salve a tutti.
    Ho questo codice :

    codice:
    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    
            If File.Exists(Application.StartupPath + "\DB.mdb") = False Then
                MessageBox.Show("Attenzione !!" + Chr(13) + Chr(13) + "Nel percorso " + Application.StartupPath + " non è presente il file DB.mdb !!" + Chr(13) + Chr(13) + "Impossibile continuare", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Application.Exit()
                Close()
            End If
    
    
            popola_combofil()
        End Sub
    Però dopo aver visualizzato il messaggio di errore passa all'istruzione popola_combofil() ed ovviamente mi da errore.

    Ma per terminare un programma quale istruzione va utilizzata ?

    Grazie
    Dopo anni di programmazione amatoriale in VBA, ho deciso di passare a VB.NET

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Dopo Close () prova a mettere
    Exit Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    74
    Ok. Così esco dalla sub e quindi non faccio nulla. Ma in questo caso l'exit non serve a niente... Potrei anche non scriverla, giusto?
    Ma non c'è modo di uscire da un programma interrompendolo?

    Grazie
    Dopo anni di programmazione amatoriale in VBA, ho deciso di passare a VB.NET

  4. #4
    Quote Originariamente inviata da karug64 Visualizza il messaggio
    Ok. Così esco dalla sub e quindi non faccio nulla. Ma in questo caso l'exit non serve a niente... Potrei anche non scriverla, giusto?
    Ma non c'è modo di uscire da un programma interrompendolo?
    Grazie
    Non ho capito... in che senso non fai nulla? Se metti "Exit Sub" sub SUBITO DOPO Me.Close (quindi all' interno dell if... end if) l' applicazione deve chiudersi! L' "Exit Sub " serve semplicemente ad evitare che venga COMUNQUE letto il codice "popola_combofil()". Io personalmente toglierei Application.Exit, Me.Close basta e avanza.

    Il modo migliore per chiudere una a applicazione è un bel Me.Close dopo aver chiuso tutti gli eventuali altri form aperti nella Sub Form_Closing (evento che non viene generato se usi Application.Exit).

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Quote Originariamente inviata da karug64 Visualizza il messaggio
    Ok. Così esco dalla sub e quindi non faccio nulla. Ma in questo caso l'exit non serve a niente... Potrei anche non scriverla, giusto?
    Ma non c'è modo di uscire da un programma interrompendolo?

    Grazie
    Si può interromperlo in qualsiasi momento mettendo l'istruzione END ma è una cosa molto molto sconsigliata.
    Il tuo Form4 è il form principale oppure è un form secondario ??
    Se è il form principale, al posto di Application.Exit mettici un Me.Dispose,
    se invece è un form secondario dovresti fare una cosa fatta bene, cioè il Form4 si chiude con Me.Close(), ritornando al form che l'ha chiamato un codice per avvisare il ciclo principale che il programma deve chiudersi.

    Sergio

  6. #6
    Opps, hai ragione Sergio... Essendo Form4 (non me ne ero accorto) è probabile sia un Form secondario.

    A mio parere aprirlo per poi chiuderlo subitamente se non si verifica una certa condizione non ha molto senso... io l' If... Then lo metterei nel Form che lancia Form4 e se la condizione non è rispettata semplicemente non lancerei Form4.

    In ogni caso un bel:

    Me.Close()
    FrmMain.Close() '(supponendo che FrmMain sia il Form principale)
    Return

    posizionato in Form4 chiuderà l' applicazione anche se Form4 fosse un form secondario, generando comunque l' evento FrmMain_Closing. a mio avviso importante per fare tutta quella serie di controlli da fare prima di chiudere definitivamente una applicazione. IMHO
    Ultima modifica di eziogsv; 08-06-2014 a 15:38

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    74
    Grazie a tutti.
    In effetti avevo seguito la strada poi proposta da eziogsv .

    Non capisco quindi quando andrebbe utilizzato l'exit ...

    Alla prossima.
    Dopo anni di programmazione amatoriale in VBA, ho deciso di passare a VB.NET

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.