If I understand you correctly then what you need is to rethrow the exception in Method2 just as you do in Method3 within the catch clause.
messagebox.show("");
throw ex;
If you do this then the remaining code in Method1 will not get executed, it wil get bypassed in the search for an exception handler.
If you don't want your code to crash wih an unhandled exception fault you'll need to have an exception handler further down the stack in something that ultimately calls Method1 so that the exception will get caught somewhere.
Generally though this is not looking like an ideal solution. Complex flow of control like this has a major tendency to lead to memory leaks, especially when excepton handling is involved. If these 'exceptional' cases are in fact part of the design of how the system is intended to work then they aren't really
exceptional and should be coded for in another way.