Close sagt nur der Form, daß sie sich schließen soll,
aber wo sagst du der Schleife, daß sie aufhören soll?
Break /
Exit /
Continue
Wenn du mal etwas auf die Code-Einrückung achten würdest, dann würde dir auffallen, daß das Close garnicht in der Schleife drin ist. ( Tipp: Kennst du Begin-End-Blöcke? )
Und ich bin mir ganz sicher, daß der Compiler dir irgendwas vonwegen "nichtinitialisiertet Variable b" mitteilt.
Tipp 2: Ich würde dir den Debugger ns Herz legen, denn da siehst du auch, was (nicht) so aufgerufen wird, wie du es gern hättest.