Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Windows Forms : Timer, ListView e TreeView

Ho messo nel seguente articolo un po' di codice VB.NET
http://blogs.ugidotnet.org/idamiani/articles/14227.aspx

Il codice sopra implementa un form con: un timer, un button, una listview e una treeview. Il codice comprende tutto quello che serve per farlo girare: l'unica accortezza è di modificare il codice del Form_Load e cambiare la directory. Cosa fa? Beh, è semplice: data una directory (appunto), preleva l'elenco dei files contenuti e li mostra nella listview (nomefile, dimensione e il tipo di file).

Fatto questo, si crea un ArrayList con i valori univoci dei tipi di files e popola una TreeView, creando tanti nodi quanti sono i tipi di files. Ok, basta. Il bottone refresha l'elenco. Il timer refresha l'elenco ogni 4 secondi. Il codice sopra funziona perfettamente: sia che clicco il button, sia lasciando che sia il timer, la listview e la treeview si ripopolano ogni volta, senza troppi problemi.

Concettualmente, il codice riportato sopra si avvicina moltissimo a quello che ho scritto nella mia applicazione. In quest'ultima però il "ripopolamento" della treeview è interrotto da un brutto errore (mai incontrato prima!!). Per risolvere, dovrei usare (a quanto pare!) BeginInvoke, perchè il tutto viene gestito da un thread secondario. Dimostrato dal fatto che InvokeRequired = True. La cosa interessante è che nell'80% dei casi l'errore non appare (anche lasciando sollevare l'evento Timer del timer, appunto).

Il codice non è esattamente lo stesso di quello scritto nell'applicazione, conto di 1) prendere il codice qui sopra e 2) avvicinarlo pian piano al codice reale dell'applicazione. Non è semplicissimo perchè in realtà nell'applicazione finale la listview viene popolata attraverso un ArrayList piena di oggetti restituitomi da un ws (oggetti FileRemoto). Però in fondo mi interessa ricreare la stessa struttura per capire veramente come risolvere l'errore. La cosa è discussa sul forum ugidotnet.org, nella sezione Windows Forms

Print | posted on lunedì 18 aprile 2005 16:26 |

Feedback

Gravatar

# re: Windows Forms : Timer, ListView e TreeView

Non ho capito come si vede la pagina
07/04/2006 22:00 | guido
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET