Caixa de diálogo personalizada em C #?

Tenho um botão que, quando clicado, abre uma caixa de diálogo com vários controles, como botões de opção e caixas de texto. Se estiver OK, os valores nessa caixa de diálogo serão retornados ao botão e o restante do código será processado com esses valores. Se Cancelar, não faça nad

Como posso fazer isso? Eu estava pensando em criar outro formulário com esses controles e fazer com que esse botão chame o novo formulário, mas quero que o restante dos controles pare até que o formulário seja concluído como uma caixa de diálog

questionAnswers(5)

yourAnswerToTheQuestion