1

ユーザーがリストボックスから選択したすべてのアイテムを収集し、アプリケーションのテキスト ボックスに値を入力しています。ただし、myListBox.SelectedItems から受け取ったアイテムは常に並べ替えられますが、ユーザーがそれらのアイテムを選択した順序を保持する必要があります。

私はWinformsを使用しています。WPF のリストボックスが必要なものを返すことはわかっていますが、単純な winform と C# だけで WPF を使用していません。

4

3 に答える 3

1

このコードを試して、注文を正確かつ簡単に記録できます。

List<int> selectedIndices = new List<int>();
//SelectedIndexChanged event handler for your listBox1
private void listBox1_SelectedIndexChanged(object sender, EventArgs e){
   if (listBox1.SelectedIndex > -1){                
      selectedIndices.AddRange(listBox1.SelectedIndices.OfType<int>()
                                       .Except(selectedIndices));                                                               
      selectedIndices.RemoveRange(0, selectedIndices.Count - listBox1.SelectedItems.Count); 
   }
}
//Now all the SelectedIndices (in order) are saved in selectedIndices;
//Here is the code to get the SelectedItems in order from it easily
var selectedItems = selectedIndices.Select(i => listBox1.Items[i]);
于 2013-10-16T04:20:59.877 に答える