-1

私はアプリケーションをビルドし、ListView にファイルを追加します。毎回最後に追加されたファイルが強調されるので、追加した Foreach ステートメント内で強調されますlvFiles.Items[lvFiles.Items.Count - 1].Selected = true;が、この場合、最後のファイルだけでなく、ListView 内のすべてのファイルが強調されます。

List<string> filesList

            foreach (string fileName in filesList)
            {
                FileInfo fileInfo = new FileInfo(fileName);
                if (checkFileCreationDate(fileInfo))
                {
                    if (editcap.isWiresharkFormat(fileInfo.FullName))
                    {
                        if (editcap.isLibpcapFormat(fileInfo.FullName))
                        {
                            addFileToListBox(fileInfo.FullName, capinfos.getFileDuration(fileInfo.FullName));
                        }
                        else if (!editcap.isLibpcapFormat(fileInfo.FullName))
                        {
                            fileToAdd = editcap.getNewFileName(fileInfo.FullName);

                            if (new FileInfo(fileToAdd).Exists && !fileInfo.Exists)
                            {
                                addFileToListBox(fileToAdd, capinfos.getFileDuration(fileInfo.FullName));
                            }
                        }
                    }
                }
            }

private void addFileToListBox(string filePath, string duration)
{
    item = new ListViewItem(new string[] { new FileInfo(filePath).Name, duration, "Waiting" });
    item.Tag = new FileInfo(filePath).FullName;
}
4

2 に答える 2

1

そのステートメントを foreach の後に置くだけで機能するはずです。

お気に入り:

foreach(var x in colY)
{
  //check file
  lvFiles.Items[lvFiles.Items.Count - 1].Selected = false;
  //add item here
  lvFiles.Items[lvFiles.Items.Count - 1].Selected = true;
}
于 2013-01-01T15:20:23.537 に答える
0

前の要素の選択を解除してから、最後の要素を選択することから始める必要があります。

foreach (var item in lvFiles.Items)
{
    item.Selected = false;
}

lvFiles.Items[lvFiles.Items.Count - 1].Selected = true;
于 2013-01-01T15:21:33.540 に答える