Имеем абсолютно стандартное диалоговое окно с кнопками подтверждения и отмены, вызываемое по какому-то действию, например клику по кнопке:
if(someDialogForm.ShowDialog() != DialogResult.OK) { return;}
Но нам надо не просто получить данные из диалогового окна по кнопке "Ок", а еще и проверить их прямо в диалоговом окне и в случае какой-либо ошибки вернуться в диалоговое окно для повторного ввода данных.
Делается это очень простым, но несколько неочевидным способом, само собой проверка вешается на клик по кнопке подтверждения, но чтобы прервать закрытие дилогового окна надо изменть свойство DialogResult самой диалоговой формы
this.DialogResult = DialogResult.None; return;