Вы можете создавать, показывать и удалять форму внутри статического метода. Пример:
public static string GetValues()
{
string value = null;
using (var form = new Form1())
{
DialogResult result = form.ShowDialog();
if (result == DialogResult.OK)
{
value = form.textBox1.Text;
}
}
return value;
}
Блок using обеспечивает освобождение ресурсов, выделенных для формы. ShowDialog показывает форму в виде модального диалога.
Хотя это работает для простых диалоговых окон, это, вероятно, не то, что вы хотите делать в каждом случае. Метод будет блокировать текущий поток, пока пользователь не закроет форму. Посмотрите на другие приложения и пример кода. Как писал @Dan Abramov, Пересмотрите свой дизайн.