Windowsフォームに2つのリストボックスがあり、それらのボックスの中央に2つのボタンがあります。1つは右を示し、もう1つは左を示します。リストボックス1でいくつかのアイテムを選択し、右の表示ボタンをクリックすると、リストボックス1で選択したアイテムを、1で選択したのと同じインデックスのリストボックス2にコピーしたいと思います。ただし、これは空の行をコピーできません。これが私のリストボックスの外観です(ここで行を簡単に追跡するために番号を追加しました)。
ListBox1 Listbox2
1. u a
2.
3. l c
4. b
5. m e
6. f
7. n >>(right button)
8. c
9. z <<(left button) t
10. q
11. s
12.
13. g b
これらのボックスで、テキストが表示されているアイテムを選択してボタンをクリックすると、そのアイテムが他のリストボックスにコピーされます。しかし、テキストのない行と空の行を選択してボタンをクリックしても、何も変更されません。他のボックスアイテムが空になることはありません。これがコードです。行をコピーする方法です。
private void button4_Click(object sender, EventArgs e)
{
List<int> selectedItemIndexes = new List<int>();
foreach (string o in listBox1.SelectedItems)
selectedItemIndexes.Add(listBox1.Items.IndexOf(o));
for (int i = 0; i < selectedItemIndexes.Count; i++)
{
listBox2.Items[selectedItemIndexes[i]] = listBox1.Items[selectedItemIndexes[i]];
}
selectedItemIndexes.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
List<int> selectedItemIndexes = new List<int>();
foreach (object o in listBox2.SelectedItems)
selectedItemIndexes.Add(listBox2.Items.IndexOf(o));
for (int i = 0; i < selectedItemIndexes.Count; i++)
{
listBox1.Items[selectedItemIndexes[i]] = listBox2.Items[selectedItemIndexes[i]];
}
selectedItemIndexes.Clear();
}
空の行もコピーするにはどうすればよいですか?