1.) Создайте форму, о которой вы говорили, со всеми необходимыми элементами пользовательского интерфейса. Также добавьте кнопку ОК и Отмена.
2.) На панели свойств кнопки «ОК» и «Отмена» установите для значений DialogResult значения «ОК» и «Отмена» соответственно. Кроме того, вы также можете установить свойство формы CancelButton как свойство кнопки «Отмена», которую вы создали.
3.) Добавьте в диалоговое окно дополнительные свойства, соответствующие значениям, которые вы хотите вернуть.
4.) Чтобы отобразить диалоговое окно, выполните что-то вроде
using( MyDialog dialog = new MyDialog() )
{
DialogResult result = dialog.ShowDialog();
switch (result)
{
// put in how you want the various results to be handled
// if ok, then something like var x = dialog.MyX;
}
}