Одним нажатием открыть одну форму и закрыть другую - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Бью себя ушами по щекам, но извините, не нашёл этой темы на форуме. В общем, я жутко туплю, но не могу понять, как сделать правильно. Суть: есть форма, на ней есть кнопка. При нажатии на кнопку, хочу чтобы форма, на которой кнопка находится, закрылась (именно закрылась, а не свернулась), а вторая, заранее приготовленная форма, появилась (типа, вход по логину-паролю(первое окно) в систему(второе окно)). Пробовал так:
// В этом случае открывается вторая форма, но почти мгновенно 
//обе закрываются и приложение заканчивает работу.
private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
            this.Close();
        }
 
// Такая конструкция тоже не помогла. 
// Вторая форма-то открывается, да вот первая не закрывается.
private void button5_Click(object sender, EventArgs e)
        {
            Form1 f1 = new Form1();
            Form2 f2 = new Form2();
            f1.Close();
            f2.Show();
        }
 
// Вот такая штука открывает вторую форму на долю секунды
// и тут же её закрывает. Причём, с первой не происходит никаких изменений.
private void button5_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
            Form1.ActiveForm.Close();
        }
 
// Вот эта штука конечно же работает. Вторая форма появляется, а первая уходит с глаз.
// Но во-первых, мне нужно чтобы первая именно закрывалась!
// А во-вторых, если я меняю Hide() на Close(), то на долю секунды открывается вторая форма и 
// мгновенно исчезают обе.
private void button5_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            Form1.ActiveForm.Hide();
            f2.Show();
        }
С нетерпением жду помощи. Заранее спасибо.

Решение задачи: «Одним нажатием открыть одну форму и закрыть другую»

textual
Листинг программы
...
Application.Run(new Form_login());
if(Form_login.status == "run")
{
    Application.Run(new Form_main());
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы