Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Effetto visivo caricamento Datagridview
Forum - C# / VB.NET - Effetto visivo caricamento Datagridview

Avatar
alip1 (Normal User)
Pro


Messaggi: 139
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 15:33
Lunedì, 26/04/2021
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ì:
Codice sorgente - presumibilmente C# / VB.NET

  1. Me.UseWaitCursor = True
  2.  loadDataForGrid()   '*** routine che provvede a caricare tramite una select un dataadpter ... ecc.
  3.  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 il 26/04/2021 alle 15:33
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 18:19
Lunedì, 26/04/2021
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 il 26/04/2021 alle 18:28


in programmazione tutto è permesso
PM Quote
Avatar
alip1 (Normal User)
Pro


Messaggi: 139
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 12:32
Martedì, 27/04/2021
Grazie Carlo
Sto da poco utilizzando VB.NET e non so come fare il backgroundworker.
Sapresti cortesemente darmi qualche dritta??
Grazie

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 20:59
Martedì, 27/04/2021
Testo quotato

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.


Carlo ha allegato un file: BackGroundWorekerReport.zip (13855 bytes)
Clicca qui per scaricare il file


in programmazione tutto è permesso
PM Quote
Avatar
alip1 (Normal User)
Pro


Messaggi: 139
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 9:26
Mercoledì, 28/04/2021
Grazie Carlo:hail:

PM Quote