000
17.11.2006, 15:51 Uhr
www.pat
|
Hi!
Ich will Items aus meiner ListView löschen können. Wenn ich das LETZTE löschen will kommt folgender Fehler:
Zitat von Fehlermeldung: |
Eine nicht behandelte Ausnahme des Typs 'System.ArgumentOutOfRangeException' ist in system.windows.forms.dll aufgetreten.
Zusätzliche Informationen: Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
|
Solange ich nicht das unterste löschen will klappt alles wunderbar... Folgender Code liest die Anzahl der Items, überprüft dann, ob sie markiert sind, und falls ja, wird es gelöscht. Wenn ein Item gelöscht wurde startet die Schleife von neuem, weil ich dachte, dass wenn Item[3] gelöscht wird, dass dann Item[6] zu Item[5] wird.
C++: |
void Form1::menuItemRemove_Click(System::Object * sender, System::EventArgs * e) { bool Item_Removed = true; // gegen Endlosschleife while (Item_Removed) { Item_Removed = false; int count = this->listView1->Items->Count; // Items zählen for (int i=0; i<count; i++) { if (this->listView1->Items->Item[i]->Selected == true) { this->listView1->Items->Item[i]->Remove(); this->button1->Focus(); // sonst wird das nächste Item markiert Item_Removed = true; break; // Nach jedem Löschen neu starten } else Item_Removed = false; // wenn nichts gelöscht wurde } } }
|
Das Programm hält an der Stelle "return 0" an:
C++: |
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA; Application::Run(new Form1()); return 0; // <----- }
|
Sieht jemand die Schwachstelle? Wo verlasse ich den Wertebereich? Und wie löse ich das am besten? Dieser Post wurde am 17.11.2006 um 15:54 Uhr von www.pat editiert. |