Also das Problem ist nicht so einfach wie es sich zuerst anhört . .
Ich hab eine Listbox die ich über DataSource und DataMember aus einer ArrayList fülle. Man hat die Möglichkeit die aktuelle Auswahl aus der Listbox zu löschen dann wird das betreffende Element aus der ArrayList gelöscht und anschließend der DataSource für die ListBox neu gesetzt, damit diese sich aktualisiert, danach wähle ich das erste Element aus.
Das Einzige Event an dem ich hänge ist SelectedValueChanged und damit setze ich dann alle DataBindings für das aktuell ausgewählte Element. Das Ganze funktioniert auch prima, aber manchmal fliegt mir eine Exception direkt aus dem Framework um die Ohren
Ablauf ist folgender:
- 1 Element wird gelöscht
- Das neue wird ausgewählt
- SelectedValueChanged wird ausgelöst
- Datenbindungen werden für die Auswahl gesetzt
- ArgumentOutOfRangeException wird geworfen
Die Exception tritt auf nachdem die SelectedValueChanged Ereignismethode fertig ist, innerhalb der Methode funktioniert alles . .
Wie gesagt die wird nicht immer geworfen und ich komm einfach nicht dahinter woran es liegen könnte
Evtl ist relevant: Ich serialisiere und deserialisiere die ArrayList per XML und ich hab das Gefühl der Fehler tritt nur bei ArrayLists auf die deserialisiert wurden, nicht bei solchen die ich gerade erstellt hab . . aber das kann auch nur Einbildung sein
Bin dankbar für jede/n Idee/Hinweis
Ich hab eine Listbox die ich über DataSource und DataMember aus einer ArrayList fülle. Man hat die Möglichkeit die aktuelle Auswahl aus der Listbox zu löschen dann wird das betreffende Element aus der ArrayList gelöscht und anschließend der DataSource für die ListBox neu gesetzt, damit diese sich aktualisiert, danach wähle ich das erste Element aus.
Das Einzige Event an dem ich hänge ist SelectedValueChanged und damit setze ich dann alle DataBindings für das aktuell ausgewählte Element. Das Ganze funktioniert auch prima, aber manchmal fliegt mir eine Exception direkt aus dem Framework um die Ohren

Ablauf ist folgender:
- 1 Element wird gelöscht
- Das neue wird ausgewählt
- SelectedValueChanged wird ausgelöst
- Datenbindungen werden für die Auswahl gesetzt
- ArgumentOutOfRangeException wird geworfen
Die Exception tritt auf nachdem die SelectedValueChanged Ereignismethode fertig ist, innerhalb der Methode funktioniert alles . .
Code:
StackTrace von der Exception:
StackTrace von der Exception:
at System.Collections.ArrayList.get_Item(Int32 index) at
System.Windows.Forms.CurrencyManager.EndCurrentEdit() at
System.Windows.Forms.CurrencyManager.ChangeRecordState(Int32 newPosition, Boolean validating, Boolean endCurrentEdit, Boolean firePositionChange, Boolean pullData) at
System.Windows.Forms.CurrencyManager.set_Position(Int32 value) at
System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e) at
System.Windows.Forms.ListBox.set_SelectedIndex(Int32 value) at
System.Windows.Forms.Control.OnClick(EventArgs e) at
System.Windows.Forms.Button.OnClick(EventArgs e) at
System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at
System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at
System.Windows.Forms.Button.WndProc(Message& m) at
System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m) at
System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at
System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) at
System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at
System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at
System.Windows.Forms.Application.Run(Form mainForm) at
Gef.Tools.SisPara.MainGui.Main() in c:\\devsrc\\develop\\dotnet\\gef\\tools\\sispara\\maingui.cs:line 329"
Wie gesagt die wird nicht immer geworfen und ich komm einfach nicht dahinter woran es liegen könnte

Evtl ist relevant: Ich serialisiere und deserialisiere die ArrayList per XML und ich hab das Gefühl der Fehler tritt nur bei ArrayLists auf die deserialisiert wurden, nicht bei solchen die ich gerade erstellt hab . . aber das kann auch nur Einbildung sein

Bin dankbar für jede/n Idee/Hinweis
Zuletzt bearbeitet: