Преимущества метода Show() при переходе между формами:
Недостатки метода Show(): если после вызова Show() пользователь закроет вызванное окно, то повторно вызвать Show() не получится, так как объект окна будет уничтожен, и его надо будет создавать заново. 1
Преимущества метода ShowDialog(): после закрытия пользователем окна (в отличие от Show()) экземпляр класса окна не будет уничтожен, поэтому не нужно перед каждым новым вызовом ShowDialog создавать экземпляр класса. 1 Этот экземпляр класса может быть создан только один раз при старте приложения. 1
Недостатки метода ShowDialog(): не позволяет фокусироваться на родительском окне после открытия дочерней формы и выполнять какие-либо действия на родительской форме. 2