我想在我的ListView中标记当前使用的文件
本文关键字:文件 我的 ListView | 更新日期: 2023-09-27 17:50:22
我构建了一个应用程序,它取我的ListView (pcap文件)中的所有文件,并开始播放所有数据包。我想要的是,当前播放的文件将标记,并在此文件完成后的下一个文件将被标记,焦点将一直在选定的文件上(我不想手动滚动查看文件)我现在所做的是标记了第一个文件,在它完成后,我的应用程序也标记了第二个和第三个文件。
这是我的开始按钮:
private void btnStart_Click(object sender, EventArgs e)
{
string filePath = string.Empty;
ThreadPool.QueueUserWorkItem(delegate
{
for (int i = 0; i < lvFiles.Items.Count; i++)
{
this.Invoke((MethodInvoker)delegate
{
lvFiles.EnsureVisible(i);
lvFiles.Items[i].Selected = true;
filePath = lvFiles.Items[i].Tag.ToString();
});
PcapFile pcapFile = new PcapFile();
pcapFile.sendQueue(filePath, adapter);
}
});
}
lvFiles
是我的ListView, PcapFile
是我的class, pcapFile.sendQueue
是开始播放的方法。
您应该在列表视图上调用Select()
。另外,不要忘记在选择下一个项目之前取消选择当前项目。
for (int i = 0; i < lvFiles.Items.Count; i++)
{
this.Invoke((MethodInvoker)delegate
{
lvFiles.EnsureVisible(i);
lvFiles.Items[i].Selected = true;
lvFiles.Select();
filePath = lvFiles.Items[i].Tag.ToString();
});
PcapFile pcapFile = new PcapFile();
pcapFile.sendQueue(filePath, adapter);
lvFiles.Items[i].Selected = false;
}