X Rossa su Datagridview

lunedì 17 dicembre 2012 - 17.58

bluland Profilo | Guru

Ciao a tutti,

ho un app che aggiorna attraverso un timer ed un BackgroundWorker un datagridview, il problema è che in modo casuale accade l'errore descritto nel link:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
,
ho letto alcuni forum tra cui molti che suggeriscono di (vedi link):
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ma non ho capito bene come applicare al mio form la soluzione, a qualcuno è capitato?

saluti

--------------------
Vincenzo PESANTE
Software Engineer

Vinsent Profilo | Senior Member

Mai vista...dopo il BSOD ci mancava solo la "red cross of death"
Da quello che ho capito è un problema di "disegno" del controllo...la soluzione del secondo link parla di creare un controllo personalizzato e sovrascrivere l' onpaint in modo da intercettare l' eccezione e con l' "invalidate" forzare il "ridisegno" dello stesso.
Comunque, forse accade perchè il BackgroundWorker aggiorna il controllo mentre si stà già aggiornando...e la parte grafica non riesce a stare al passo del codice visto che sono thread separati. Se fosse così penso potresti risolvere con la riga di codice 'Application.DoEvents' inserita per prima nella sub che aggiorna il controllo, in questo modo il thread a cui appartiene il controllo smaltisce tutte le operazioni prima di proseguire con il codice. Ed anche questa soluzione credo sia un pò arrangiata...
Ciao

bluland Profilo | Guru

Allora io ho un bgw che nella funzione Do Aggiorna il gridview dopo aver richiamato i dati dal db, quindi cosa dovrei provare, puoi spiegarti meglio,
Grazie del feedback.
--------------------
Vincenzo PESANTE
Software Engineer

Vinsent Profilo | Senior Member

Tieni presente che è solo un' idea e parto dal presupposto che gli intervalli di aggiornamento siano abbastanza brevi.
Adesso con il cellulare ho qualche difficoltà...prova a guardare gli esempi su msdn.
Comunque, ti conviene optare per la soluzione del link che almeno è data come certa...
Che linguaggio stai usando? Io conosco solo VB.NET...
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5