Switching back and forth between forms
Firstly, I think you need to clarify why you are wanting to show the payment form and hide the main form. In most applications, when you want to show a dialog of some description, you would show it modally (using dialog.ShowDialog()) so that it appears over the top of your current form and prevents the user from interacting with the other form until the opened dialog is closed.

Secondly, if you are wanting your current main form and payment dialog as two screens as opposed to a form and a dialog, then you may be better off creating some shell form that can contain a UserControl. You can then build the main form and payment form as two UserControl's and simply switch which is being displayed on your window.