første gang jeg trykker på en linje i listview'er virker det fint, men anden gang får jeg en exception: "enumeration already finished" - jeg har prøvet at sætte både "selCol" og "lvi" til "null", men den bliver ved...
lifo har ret, den mindst besværlige måde (og efter min mening den rigtige måde) at gøre det på er ved ovenstående eksempel.
I den kode du har skrevet skal du bare tilføje linien: selCol.Reset(); inden du kalder selCol.MoveNext(); Altså: try { IEnumerator selCol = lvwOrders.SelectedItems.GetEnumerator(); selCol.Reset(); selCol.MoveNext(); ListViewItem lvi = (ListViewItem)selCol.Current; MessageBox.Show(lvi.SubItems[4].Text.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Øhm? hvorfor. Når der nu i C# er en pæn måde at abstrahere fra sin iterator, så bør man bruge denne. Med andre ord så antager jeg at lifo er den rigtige løsning, men begge vil naturligvis give samme resultat.
jeg vil gerne gave at der kommer en msgbox op når man klikker på en række, når man så klikker på en ny række skal der bare komme en ny msgbox (self først når man har trykket ok i den forrige) jeg har også prøvet med selCol.reset, men det kunne jeg heller ikke få til at spille, jeg satte den dog i nederst i try{}-delen, idet jeg så regnede med at den var resat til næste gang den kom derind...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.