0

ListView内のすべてのファイル(pcapファイル)を取得し、すべてのパケットの再生を開始するアプリケーションを構築します。私が欲しいのは、現在再生中のファイルがマークされ、このファイルが終了した後、次のファイルがマークされ、選択されたファイルに常にフォーカスが置かれることです(ファイルを表示するために手動で登録したくない)これで、最初のファイルにマークが付けられ、それが終了した後、アプリケーションは2番目と3番目のファイルにもマークを付けます。

tisは私のスタートボタンです:

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は私のクラスでありpcapFile.sendQueue、プレイを開始するメソッドです。

4

1 に答える 1

1

これについては、リストビューを呼び出す必要があります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;
    }
于 2013-01-02T21:06:50.450 に答える