Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
SuspendLayout e ResumeLayout
martedì 12 ottobre 2010 - 14.07
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows XP
boc_babi
Profilo
| Junior Member
52
messaggi | Data Invio:
mar 12 ott 2010 - 14:07
Ciao,
ho provato ad utilizzare i comandi SuspendLayout e ResumeLayout durante il riempimento di una DataGridView per evitare che durante il riempimento della stessa il sistema si bloccasse per poi riprendere il corretto funzionamento una volta terminato il riempimento della DataGridView.
Il problema è che i comandi non funzionano o meglio non vedo l'effetto desiderato. La DataGridView continua a bloccarsi durante il riempimento.
Avete suggerimenti in tal proposito ?
Grazie, BOC
giorgiodipietro
Profilo
| Junior Member
125
messaggi | Data Invio:
mer 13 ott 2010 - 09:40
Ciao, ho avuto anche io una necessità simile e ho risolto sfruttando gli eventi di un oggetto BackgroundWorker e spezzando il caricamento dei dati in scaglioni..
Il caricamento vero e proprio viene effettuato all'interno dell'evento BackgroundWorker_DoWork. Invece all'interno dell'evento Click del bottone per avviare il caricamento lancio il metodo BackgroundWorker.RunWorkerAsync.
Ti scrivo qui un piccolo esempio..
Dim WithEvents T As New BackgroundWorker
Private Sub Btn_Click() 'evento del bottone che fa partire il caricamento
T.RunWorkerAsync
End Sub
Private Sub T_DoWork() handles T.DoWork
'procedure che utilizzi per caricare i dati, se sono tanti ti consiglio a scaglioni
DataGridView.Refresh
End Sub
Spero di esserti stato utile e di aver capito e risolto il problema.
Giorgio
Non si finisce mai di imparare!!
boc_babi
Profilo
| Junior Member
52
messaggi | Data Invio:
mer 13 ott 2010 - 12:31
Ciao,
grazie mille per la risposta.
Avevo già pensato ad una soluzione come quella che mi hai prospettato, ma mi ero imposto di non seguirla poiché, e quello che ti dico adesso non appare nel mio post, se eseguo il riempimento della DataGridView da un form che non contiene la DataGridView il problema non esiste. Ovvero la DataGridView viene riempita immediatamente.
Mi spiego meglio con un esempio:
form con Bottone per riempire la DataGridView, DataGridView -> premo il bottone e la DataGridView viene riempita con un centinaio di righe il sistema si blocca per 6/7 secondi.
form con Bottone per riempire la DataGridView presente in un altro form -> premo il bottone e la DataGridView dell'altro form viene riempita con un centinaio di righe in maniera istantanea
Quindi ritengo sia proprio un problema di refresh o repaint della DataGridView.
Se non trovo altra soluzione sarò comunque obbligato ad utilizzare il tuo suggerimento.
Grazie ancora, BOC
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !