Mettere in attesa l'apertura di form

di il
3 risposte

Mettere in attesa l'apertura di form

Salve,
ho un programma che all'avvio deve controllare se esiste il file di registrazione e/o di configurazione.
Se manca uno dei due file tutto funziona. Mi apre il form relativo alla funzione da svolgere e poi lo chiude e continua il programma.

Se però mancano entrambi mi si aprono contemporaneamente i due form secondari, mentre invece io vorrei sì che aprissero ma in sequenza in maniera di inserire prima i dati della licenza e quindi, chiuso il primo, che i aprisse quello della configurazione, (alla chiusura del quale ovviamente il programma continui come ora).

Come posso mettere in attesa il secondo form fino alla chiusura del primo?



Il codice è questo:

Public Class Form1
    Private Sub frmIntro_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        ' se non esiste il file registrazione.txt apri prima il form di registrazione

        If System.IO.File.Exists("c:\registrazione.txt") = False Then

            Me.WindowState = FormWindowState.Minimized
            frmRegistrazione.Show()
        End If


        ' se non esiste il file configurazione.txt apri prima il form di configurazione

        If System.IO.File.Exists("c:\configurazione.txt") = False Then

            Me.WindowState = FormWindowState.Minimized
            frmConfigurazione.Show()
        End If

        ' altrimenti visualizza direttamente il form di attuale
........

    End Sub
End Class

Grazie anticipatamente

3 Risposte

  • Re: Mettere in attesa l'apertura di form

    ribelle ha scritto:


    Se però mancano entrambi mi si aprono contemporaneamente i due form secondari, mentre invece io vorrei sì che aprissero ma in sequenza in maniera di inserire prima i dati della licenza e quindi, chiuso il primo, che i aprisse quello della configurazione, (alla chiusura del quale ovviamente il programma continui come ora).
    [...]
    Le finestre non si aprono da sole, quindi il risultato che ottieni è probabilmente determinato dal codice che hai scritto, che non rispecchia i requisiti descritti.

    Una finestra si può aprire con al di sopra delle altre già esistenti, oppure con , che blocca la prosecuzione del codice chiamante fino a quando la finestra aperta non viene chiusa.

    Al netto di questo, a giudicare dal codice la gestione è ribaltata, in quanto la finestra di partenza è quella che lancia all'occorrenza le altre due finestre, dalle quali peraltro dipende la visualizzazione della prima, che viene in ogni caso aperta e regola la visualizzazione delle altre due: se una finestra deve apparire solo in certe condizioni, invece di mostrarla e poi nasconderla, tanto vale non farla apparire.

    Se vi sono delle pre-condizioni tali da impedire (o consentire) la visualizzazione di determinati Form all'avvio, questa logica a mio parere andrebbe inserita nel Main, proprio perché riguarda questa fase del programma, senza mescolare il codice che verifica e gestisce la licenza e la configurazione con quello che governa le finestre (quindi la UI) di accesso a quella logica.

    Ciao!
  • Re: Mettere in attesa l'apertura di form

    Grazie mille provvedo con showdialog() perchè queste finestre si potrebbero aprire anche dopo cambi utente durante lo svolgimento del prg.

    Grazie ancora
  • Re: Mettere in attesa l'apertura di form

    Ciao, io direi che è un problema piu di logica che di programmazione... fossi in te farei così:

    Quando si verifica la condizione in cui entrambi i files mancano fai aprire SOLO il Form di registrazione, poi nel Button che scatena l'evento di OK in questo Form, metti la funzione show per il Form Impostazioni.

    Poi ovviamente nulla toglie che puoi fare tutti i controlli e\o variazioni che vuoi ma a logica ragionerei così...
    Anche perchè io lo faccio nei miei progetti e funziona...
    però ripeto, è piu un problema di logica che di programmazione vedrai
Devi accedere o registrarti per scrivere nel forum
3 risposte