簡體   English   中英

如何保存ListView所選項目

[英]How to save ListView selected item

我正在嘗試保存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-Event中選擇項目的代碼是:

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

我的設置的默認值為-1

首先, 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;
}
sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error

有你的錯誤。

請參考以下內容。 如何以編程方式在ListView中選擇一個項目?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM