18/08/14 12:43
Maxton
salve a tutti, avrei bisogno di consigli per velocizzare il caricamento di una form che contiene un TableLayoutPanel che a sua volta contiene 14x32 label, si tratta di una rubrica, i dati sono salvati su un file d'accesso casuale.
Il caricamento dei label è molto semplice
Vi ho postato una parte del codice ma i label sono 32 per ogni riga (14 in totale), indice è una variabile che si incrementa di 32 o decerementa di 32 quando vado avanti o indietro (con i dovuto controlli), funziona tutto perfettamente ma impiega più di 5 secondi ad aggiornarsi la schermata, c'è modo per velocizzare il tutto?
Il caricamento dei label è molto semplice
Public Sub Aggiornamento() Dim FileNum = FreeFile() Dim Rubrica As ClasseRubrica = New ClasseRubrica FileOpen(FileNum, MenùIniziale.DiscoDati + Costante.NomeFileRubrica , OpenMode.Random, , OpenShare.Shared, Costante.GrandezzaCampoRubrica) LunghezzaMassima = LOF(FileNum) / Costante.GrandezzaCampoRubrica For Idx = 1 To 32 If Indice + Idx > LunghezzaMassima Then Me.Controls.Find("LabelNumero" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelNome" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelCOgnome" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelIndirizzo" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelTelefono1" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelTelefono2" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabelTelefono3" & Idx.ToString, True)(0).Text = "" Me.Controls.Find("LabeFax" & Idx.ToString, True)(0).Text = "" Else FileGet(FileNum, Rubrica.Cliente, Indice + Idx) Me.Controls.Find("LabelNumero" & Idx.ToString, True)(0).Text = (Indice + Idx).ToString Me.Controls.Find("LabelNome" & Idx.ToString, True)(0).Text = Trim(Appuntamenti.Cliente.Nome) Me.Controls.Find("LabelCognome" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Cognome) Me.Controls.Find("LabelIndirizzo" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Indirizzo) Me.Controls.Find("LabelTelefono1" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Telefono1) Me.Controls.Find("LabelTelefono2" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Telefono2) Me.Controls.Find("LabelTelefono3" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Telefono3) Me.Controls.Find("LabelFax" & Idx.ToString, True)(0).Text = Trim(Rubrica.Cliente.Fax) End If Next FileClose() End Sub
Vi ho postato una parte del codice ma i label sono 32 per ogni riga (14 in totale), indice è una variabile che si incrementa di 32 o decerementa di 32 quando vado avanti o indietro (con i dovuto controlli), funziona tutto perfettamente ma impiega più di 5 secondi ad aggiornarsi la schermata, c'è modo per velocizzare il tutto?
aaa