@TechNOIR

C#. Как внедрить диалоговое окно в консольное приложение?

Добрый день!
Подскажите пожалуйста как внедрить диалоговое окно в консольное приложение?

У меня пока вот что получилось:
static void Main(string[] args)
        {
            Size resolution = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size;
            Console.WriteLine(resolution);

            if (resolution.Height == 1080 && resolution.Width == 1920)
            {
                Console.WriteLine("Yes");
                Form frmAbout = new Form();
                Button button1 = new Button();
                Button button2 = new Button();
                button1.Text = "Продолжить";
                button2.Text = "Завершить программу";
                frmAbout.Controls.Add(button1);
                frmAbout.ShowDialog();
            }


            Console.WriteLine("Я сработал");

        }
        private void button1_Click(object sender, System.EventArgs e)
        {
            Тут надо закрыть форму и продолжить выполнение программы
        }
        private void button2_Click(object sender, System.EventArgs e)
        {
            А тут надо завершить выполнение программы
        }
    }


Как правильно сделать? Форму из button1_click не получается закрыть.. В обоих кнопках подписать что должна выполнять эта примитивная программка.
Спасибо заранее за помощь

P.S. Нужна именно форма с двумя кнопками, а не DialogBox
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 2
Не получается закрыть это как? Можно попробовать не закрыть, а скрыть форму frmAbout.Hide() или как-то так.
Ответ написан
@Slav2
Скорее всего надо переопределить форму и добавить делегат и функцию закрывающую форму.
delegate void CloseFormCallback();

        private void CloseForm()
        {
            try
            {
                if (this.IsDisposed || this.Disposing) return;

                CloseFormCallback d = CloseForm;

                if (this.InvokeRequired)
                {
                    Invoke(d);
                }
                else
                {
                       this.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 3 000 до 5 000 usd.
SLC7 Екатеринбург
от 50 000 до 90 000 руб.
от 40 000 до 70 000 руб.