SuspendLayoutとResumeLayoutをリストビューに関して正しく動作させるにはどうすればよいですか?アイテムを追加する前後に、これらのコード行を追加しましたが、各アイテムを追加するとまだ各アイテムが表示されています。リストビューの中断と再開
おかげ
マイコード:
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)
私は2000個のアイテムを追加しています。これには7秒かかります。私はそれがそれよりもはるかに短くなければならないと言われました。あれは正しいですか?
新コード:
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)
何も追加されています。何を私は間違ってやったのですか?
あなたのコードを示すのに役立つかもしれません。人々のESPに欠陥があるかもしれません。 – simchona