Comment faire pour que les commandes SuspendLayout et ResumeLayout fonctionnent correctement en ce qui concerne une liste. J'ai ajouté ces lignes de code avant et après avoir ajouté les éléments, mais chaque élément est toujours affiché lorsque j'ajoute chaque élément.Listview suspendre et reprendre
grâce
Mon code:
Dim x As Integer Dim startTick As Integer = Environment.TickCount lstFiles.SuspendLayout() For x = 0 To UBound(cacheListArray) If cacheListArray(x) Like "*.txt" Then lstFiles.Items.Add(cacheListArray(x)) End If Next lstFiles.ResumeLayout() MsgBox(Environment.TickCount - startTick)
J'ajoute 2000 articles. Cela prend 7 secondes. On m'a dit que ça devrait être beaucoup plus court que ça. Est-ce exact?
Nouveau code:
Dim ListViewItemArray(-1) As ListViewItem
ReDim Preserve ListViewItemArray(UBound(ListViewItemArray) + 1)
ListViewItemArray(UBound(ListViewItemArray)).Text = file.Name
ListViewItemArray(UBound(ListViewItemArray)).SubItems.Add(file.FullName)
ListViewItemArray(UBound(ListViewItemArray)).SubItems.Add(file.Length)
ListViewItemArray(UBound(ListViewItemArray)).SubItems.Add(file.CreationTime)
ListViewItemArray(UBound(ListViewItemArray)).SubItems.Add(file.LastWriteTime)
ListViewItemArray(UBound(ListViewItemArray)).SubItems.Add(file.LastAccessTime)
lstFiles.Items.AddRange(ListViewItemArray)
Rien est ajouté. Qu'ai-je mal fait?
Il pourrait être utile de montrer votre code. L'ESP des gens pourrait être défectueux. – simchona