如何保存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
我制作了一个小应用程序,从设置中读取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;
}