Ciao a tutti, innanzitutto volevo ringraziare tutti coloro che mi hanno aiutato precedentemente ad esportare in excel un datagridview in modo veloce le vostre indicazioni mi sono state molto utili (discussione con titolo Esportare un datagridview in Excel in modo veloce e che trovate qui link )
Volendo dare un tocco di classe alla mia applicazione vorrei fare in modo tale che ogni volta che eseguo una query per estrapolare i dati da inserire in un dataset e che poi saranno visualizzati in un datagridview, ci fosse una progress bar che mi indichi lo stato della costruzione del dataset e solo al termine dell'incremento della progress bar venga visualizzata la form con il datagridview.
Analogamente vorrei fare con l'esportazione in excel del datagridview, cioè inserire un progress bar che mi indichi lo stato in percentuale ed alla fine dell'incremento della progress bar un messaggio che mi indichi che il file excel è stato creato.
Quindi,ho iniziato ad implementare la progress bar per il primo punto e nell'evento click del mio bottone c'è il seguente codice:
codice:
ProgressBar.Value = 0
ProgressBar.Maximum = 100
ProgressBar.Minimum = 0
Timer.Interval = 1
Timer.Enabled = True
Timer.Start()
'Estrapolazione dei dati dal db
'Caricamento nel dataset
'Caricamento del datagriedview nella seconda form
Form2.Show()
ed il timer è implementato così
codice:
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
ProgressBar.Increment(1)
if ProgressBar.Value = ProgressBar.Maximum then
Timer.Stop()
Timer.Enabled = False
End If
Label.Text = ProgressBar.Value & "%"
End Sub
La cosa strana è che la progress bar si incrementa dopo che è apparsa la seconda Form, anche andando a debuggare il codice in effetti la sub Timer_Tick viene eseguita dopo la Sub che implementa l'evento click del mio bottone di estrazione.
Devo per caso implementare il timer con un thread? Se si allora come mai il timer non parte con lo start().
Vi chiedo gentilmente di aiutarmi per favore.
Vi ringrazio in anticipo gcadmin