如何保存ListView所选项目

本文关键字:ListView 选项 项目 保存 何保存 | 更新日期: 2023-09-27 18:28:23

我正在尝试保存ListView所选项目,但我不知道为什么会出现此错误:

"无法将类型"int"隐式转换为'System.Windows.Forms.ListView.SelectedListViewItemCollection'"

我在保存按钮上尝试了这个代码:

Settings.Default["SelectedDevice"] = sourceList.SelectedItems; //Works fine

在Form_Load上,我尝试了这个:

sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error

如何保存ListView所选项目

我制作了一个小应用程序,从设置中读取selecteditem。在OnLoad事件中选择项目的代码为:

 private void OnLoad(object sender, EventArgs eventArgs)
 {
    int selectedItem = Properties.Settings.Default.SelectedItem;
    if (selectedItem != -1)
    {
       this.listView1.Items[selectedItem].Selected = true;
    }
  }

我的设置的默认值是-1

sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error

这是你的错误。

请参阅以下内容。如何以编程方式在ListView中选择项目?

首先,SelectedItems只读属性,不能设置。其次,它是SelectedListViewItemCollection而不是int

如果你试图在你的列表中存储项目的选定索引,你需要按照以下行做一些事情:

// store CSV list of indices
Settings.Default["SelectedItems"] = String.Join(",", listView.SelectedIndices.Select(x => x));
...
// load selected indices
var selectedIndices = ((string)Settings.Default["SelectedItems]).Split(',');
foreach (var index in selectedIndices)
{
    listView.Items[Int32.Parse(index)].Selected = true;
}