ja, aber Du machst die Dialogbox zu und wieder auf. Daher das flackern...
Du behebst also nicht den "Eingabefehler" (x gedrückt oder Esc), sondern die Auswirkung.
Ich persönlich behebe den Fehler lieber dort wo er passiert...
Nur gesetzt den Fall, du möchtest die Dialogbox jetzt auch aus einem Formel- Agenten aufrufen könenn, dann musst Du Dir hier wieder einen eigenen Mechanismus zum Re-Open ausdenken und den implementieren.
Oder anders gesagt: Wo auch immer im Code du die Dialogbox aufrufen willst, musst Du wieder die "Widerholbedingung" mitprogrammieren.
Wenn das schliessen des Dialogs aber schon dort verhindert wird, wo es nicht passieren soll, dann musst Du Dir beim Aufruf wenigstens darüber keine Sorge mehr machen...
mal ganz abgesehen von der Möglichkeit, dass bei Deiner Lösung Eingaben verloren gehen können und Berechnungen (z.B. berechnet zur Anzeige Felder mit Lookups) bei jedem reopen aufs neue gemacht werden....
Aber es ist natürlich jedem selbst überlassen, wie man das implementiert...
Ich machs halt so wie beschrieben...
Gruß
Tode