Es gibt schon bestimmte Logiken, die man als Programmier anwenden und einhalten muss,
ansonsten funktioniert das System nicht.
Das hatte ich bei meinem Beispielskript schon angedeutet.
Der Programmflow ist inkonsistent und deshalb ist das einfach schlechtes Programmdesign.
MessageBoxen sind dazu da um Infos und Fehler anzuzeigen und sie anschließend wegzuklicken.
Der Nutzer soll nach dem Wegklicken die Eingabemaske verändern und es erneut versuchen aber nicht während die MessageBox noch sichtbar ist.
Verändert man nämlich während der aktiven MessageBox die GUI, dann bleibt die MessageBox immer noch sichtbar und der Zustand des Programms ist mehr oder weniger undefiniert.