2012-11-28 16 views
6

Próbuję pokazać wybrane pozycje listBox1 w wiadomości Box Oto kod:Get tekst wybranych elementów w ListBox

int index; 
string item; 
foreach (int i in listBox1 .SelectedIndices) 
{ 
    index = listBox1.SelectedIndex; 
    item = listBox1.Items[index].ToString(); 
    groupids = item; 
    MessageBox.Show(groupids); 
} 

Problem polega na tym, że kiedy wybrać więcej niż jedną pozycję się okno komunikatu pokazuje pierwszy wybrany przeze mnie i powtarza komunikat EX: jeśli wybiorę 3 elementy, wiadomość pojawi się 3 razy z pierwszym elementem:

Odpowiedz

6

Numer i w pętli foreach ma wymagany indeks. Używasz listBox1.SelectedIndex, która ma tylko pierwszą. Więc pozycja powinna być:

item = listBox1.Items[i].ToString(); 
11

Można iterację przedmiotów tak:

 foreach (var item in listBox1.SelectedItems) 
     { 
      MessageBox.Show(item.ToString()); 
     } 
4

Jak pudełko o 1 wiadomości z wszystkich wybranych elementów?

Jeśli są zaznaczone, należy podać wiersz dla każdego zaznaczonego elementu w oknie komunikatu. Najprawdopodobniej jest to ładniejszy sposób z linq, ale nie określiłeś wersji .NET.

0

Spróbuj tego rozwiązania:

string item = "";  
foreach (var i in listBox1.SelectedIndices) 
    { 
     item += listBox1.Items[(int)i] + Environment.NewLine; 
    } 
MessageBox.Show(item); 
Powiązane problemy