Oppure

Loading
26/04/21 13:33
alip1
Buon pomeriggio e scusatemi

Una Datagridview di un form viene caricata per visualizzare alcuni campi di una tabella esistente in un server sql.

I records sono oltre 9000.

Nel mentre si carica la griglia vorrei mostrare il cursore che gira come indicare all'utente di avere un'attimo di pazienza.

L'applicazione è in vb.net

ho provato afare così:
 Me.UseWaitCursor = True
 loadDataForGrid()   '*** routine che provvede a caricare tramite una select un dataadpter ... ecc.
 Me.UseWaitCursor = False


pensavo in esecuzione di vedere il solito cursore a forma di cerchio blu invece vedo caricarsi la griglia ma il cursore rimane la solita arrow.
Qualcusa sa dirmi come potrei fare??
Grazie a tutti
Ultima modifica effettuata da alip1 26/04/21 13:33
aaa
26/04/21 16:19
Carlo
Il corsore non ha tempo di cambiare forma perché l'istruzione successiva blocca l'aggiornamento del form e del mouse sul descktop.
Application.DoEvents prima di caricare la datragridview, aspetterebbe l'aggiornamento grafico del form (1 millisecondo) prima di bloccarsi sul caricamento della datagridview e vedresti il cursore cambiare forma.

Per velocizzare un po' il caricamento della datagridview, puoi usare:
dataGridView1.SuspendLayout()
caricamento....
dataGridView1.ResumeLayout()

Invece il metodo corretto è, mettere il caricamento della datagridview dentro a backgroundworker, così il form non si blocca e puoi mostrare il tempo che scorre o quello che vuoi. Magari mentre il datagrid si carica in background l'utente può svolgere altre operazioni utili.

Si possono anche caricare solo le celle visibili, rendendo la visualizzazione istantanea, ma occore una gestione avanzata del datagridview, con la gestione delle celle visibili anche al resize del form e relativo aggiornamento delle scrollbar.

Ultima modifica effettuata da Carlo 26/04/21 16:28
in programmazione tutto è permesso
27/04/21 10:32
alip1
Grazie Carlo
Sto da poco utilizzando VB.NET e non so come fare il backgroundworker.
Sapresti cortesemente darmi qualche dritta??
Grazie
aaa
27/04/21 18:59
Carlo
Postato originariamente da alip1:

Grazie Carlo
Sto da poco utilizzando VB.NET e non so come fare il backgroundworker.
Sapresti cortesemente darmi qualche dritta??
Grazie

Lavorare con backgroundworker è facile, ma alcune cose bisogna saperle...
Nel progetto allegato un esempio semplice, ma completo del corretto metodo per passare i dati, ricevere lo stato di avanzamento, interruzione anticipata e come ricevere la notifica di termine compito.
in programmazione tutto è permesso
28/04/21 7:26
alip1
Grazie Carlo:hail:
aaa