0

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

“不能将类型 'int' 隐式转换为 'System.Windows.Forms.ListView.SelectedListViewItemCollection'”

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

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

在 Form_Load 我试过这个:

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

3 回答 3

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

于 2013-08-21T10:56:57.593 回答
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;
}
于 2013-08-21T10:49:39.657 回答
0
sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error

有你的错误。

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

于 2013-08-21T10:51:49.277 回答