如何从listView1获取所有选定的项目并将它们添加到字符串[]?

时间:2014-12-14 18:05:09

标签: c# .net winforms

我有这个代码,AllFiles是字符串数组:

public string[] AllFiles { get; set; }

在这个地方,我试图获取所有选定的项目(在这种情况下是文件)。 我的listView1在设计器中设置为多选,因此我可以从listView1中选择一个或多个文件。

当我右键单击文件时,我会看到menuStrip1选项。 我想知道我是否多选一些文件并右键单击menuStrip1将打开的菜单对所有选定文件有效或仅对鼠标光标现在有效?

void listView1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {

                if (listView1.FocusedItem.Bounds.Contains(e.Location) == true)
                {
                    menuStrip1.Show(listView1, e.Location);
                }
            }
        }

然后我点击了menuStrip1项目的事件:

void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            if (e.ClickedItem.Text == "Upload")
            {
                AllFiles = listView1.SelectedItems
                AllFiles =  listView1.FocusedItem.Text);
                Bgw.RunWorkerAsync();
            }
        }

这里我想添加为AllFiles数组分配我选择的文件。

listView1.FocusedItem.Text

仅针对单个文件,但如果我选择了多个文件,我如何从listView1中聚焦/获取所有标记/选定的文件/项目以及如何将它们分配给数组AllFiles?

1 个答案:

答案 0 :(得分:1)

这看起来像是:

        List<String> selected = new List<String>();
        foreach(ListViewItem lvi in listView1.SelectedItems)
        {
            selected.Add(lvi.Text);
        }
        AllFiles = selected.ToArray();