나는 윈도우 폼에 2 개의 목록 상자가 있고 그 상자 중간에 2 개의 버튼이 있습니다. 하나는 다른 오른쪽 쇼를 보여줍니다. 원하는 항목을 선택하면 listbox1에서 말하고 오른쪽 표시 버튼을 클릭합니다. listbox1에서 선택한 항목을 목록 1의 항목과 동일한 색인으로 복사하려고합니다. 그러나 빈 행을 복사 할 수 없습니다. 이것은 내 listbox가 어떻게 생겼는지 보여줍니다 (여기에 줄을 쉽게 추적하기 위해 숫자를 추가했습니다).선택한 ListBox1 항목을 동일한 인덱스의 ListBox2 목록에 복사하는 방법은 무엇입니까?
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();
}
어떻게 빈 행을 복사 할 수 있습니까? ; 때문에 라인을 (O listBox1.SelectedItems의 문자열)
foreach는 다음의 selectedItemIndexes.Add (listBox1.Items.IndexOf (O) -)이다
당신은 SelectedIndices http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox을 사용할 수 있습니다. SelectedItems 대신 selectedindices.aspx ... – craig1231
이 답변을 주셔서 대단히 감사합니다. 모든 것을 마술로 해결했습니다! 고맙습니다. – user1767833