Как сделать кастомный MessageBox

Нужно сделать форму, по функционалу напоминающую MessageBox. Другими словами я вызываю статичный метод, который создает форму, останавливает основной код и ожидает нажатия клавиши ГОТОВО. От стандартного решения, мое будет отличатся наличием ComboBox, в котором юзер должен будет выбрать опцию, которая по нажатию клавиши ГОТОВО, должна быть возвращена, а основной код должен продолжить работу. Вопрос в том, как нам остановить выполнение основного кода, при этом оставив форму для выбора активной. Пробовал Разные способы использования потоков, но ничего не вышло. Привожу пример тестового кода.

private void Form1_DoubleClick(object sender, EventArgs e)
        {
            MessageBox.Show(UserSelect.userSelectDialog());
        }
 public static string userSelectDialog(string shop_id = null, string text = "Выбор пользователя:")
        {
            var t1 = new Thread(()=> 
            {
                UserSelect us = new UserSelect(shop_id, text);
            });

            t1.Start();

            while (true);
            return "";   
        }

Тут я пытался создать форму в потоке, а основной код остановить бесконечным циклом. Но это не работает, форма, что была создана в потоке тоже не работает. Какие еще варианты?


Ответы (1 шт):

Автор решения: NoMad

Нужно было всего лишь использовать Form.ShowDialog()

→ Ссылка