Just to give you an idea:
I haven't seen a single
goto
for many ears. I saw the bare traces of
goto
until middle of 1980x, mostly in FORTRAN and almost never later. Even in FORTRAN it was considered obsolete; it's just because people used to work in earlier versions of the compiler.
I'm very surprised someone remembers this operator and use it. It's relatively hard to fix your code because the normal programmer's brain is not used to see any need in
goto
; the use if it is not even considered.
I would try to throw out the code and write it normally.
By the way, you misuse try-catch. After showing message box propagation of the exception is blocked. The exception should be caught in main UI thread cycle. The class Application of both Forms and WPF have the member to catch the exception on the very top of the cycle.
You also mix-up data manipulations and UI, this is very bad and not supportable. There are different architectural patterns helping to separate concerns: MVC, MVP, MVA and MVVM; you can find them in Wikipedia, please see the list in my past answer:
how to control Controlls of a user interface form through Functions (methods)[
^].
—SA