0

ListBox(with selectionMode=multiple)選択した値をクッキーに保存します。ユーザーが戻ってきたら、もう一度選択したすべてのオプションを提供したいと思います。

これまでに行ったこと: 選択したすべての値を取得し、"," で区切られたインデックスを cookie の文字列に格納します。

ユーザーが戻ってきたら、文字列を分割し、すべての ListItems をループして、それぞれをもう一度選択します。

ただし、次の場合:

foreach (string str in selectedStr)
{
    listbox1.SelectedIndex = Int32.Parse(str);
}

1 つの (ランダムな?) 選択された値のみを取得します。

選択したすべての値を再度選択するのを手伝ってくれる人はいますか? 多分もっと良い解決策?

4

2 に答える 2

3

FindByValue次のようにListviewのプロパティを使用してみてください...

foreach (string str in selectedStr)
{
    if(listbox1.Items.FindByValue(str) != null) 
    { 
          listbox1.Items.FindByValue(str).Selected = true; 
    } 
}
于 2013-02-18T09:47:45.600 に答える
2

分割された文字列配列を反復処理ListBox.Items[]し、インデックスに基づいてにアクセスし、Selectedプロパティを true に設定できます。

foreach (string str in selectedStr)
{
    listbox1.Items[Int32.Parse(str)].Selected = true;
}

strそれが実際に整数であり、その範囲内にあることを確認してくださいItems.Length

于 2013-02-18T09:26:57.167 に答える