Aber der User soll doch gleichzeitig auch die Möglichkeit haben, neue Elemente hinzuzufügen, oder? Daher mußt du eben beide Fälle (markiertes Element ändern, neues Element hinzufügen) gesondert betrachten.
Wenn du jetzt also einfach in deinem OnClick das Löschen des markierten Elements auschaltest, sollte doch alles funktionieren.
Ein Klick auf ein Item -> Editfelder werden gefüllt
Klick auf Ändern -> Übernahme der Daten in das markierte ListBox-Item
Klick auf Hinzufügen -> Neues Element mit den Daten aus den Editfeldern.
Das Problem beim Arbeiten mit nur einem Button für Ändern/Hinzufügen besteht darin, daß du ja eigentlich nur über ein markiertes Item erkennst, ob geändert oder hinzugefügt werden soll. Aber wer sagt denn, daß ein User nicht ein Element markiert hat, aber trotzdem ein neues hinzufügen will?
Sollte ich dein Programm falsch verstanden haben, korrigiere mich, aber so wie ich es gesehen habe, soll das ganze so eine Art Adressverwaltung sein, oder? Daher braucht der User eben beide Funktionalitäten. Wenn du eine einfachere Lösung findest, die auch narrensicher ist, verrate es mir, das könnte ich auch immer gut gebrauchen