我正在尝试保存ListView
所选项目,但我不知道为什么会收到此错误:
“无法将类型'int'隐式转换为 'System.Windows.Forms.ListView.SelectedListViewItemCollection'“
我在保存按钮上尝试了这段代码:
Settings.Default["SelectedDevice"] = sourceList.SelectedItems; //Works fine
在Form_Load上的我试过这个:
sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error
答案 0 :(得分:1)
我做了一个小应用程序,我从设置中读取了选定项目。在OnLoad-Event中选择Item的代码是:
private void OnLoad(object sender, EventArgs eventArgs)
{
int selectedItem = Properties.Settings.Default.SelectedItem;
if (selectedItem != -1)
{
this.listView1.Items[selectedItem].Selected = true;
}
}
我的设置的默认值为-1
答案 1 :(得分:0)
首先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;
}
答案 2 :(得分:0)
sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error
有错误。
请参阅以下内容。 How to select an item in a ListView programmatically?