Открыть / показать другую форму с помощью кнопки [X] C # - PullRequest
0 голосов
/ 06 июня 2018

У меня есть 2 формы, Startform - это форма входа в систему (Form1) и форма, которая открывается после входа в систему, Form2.

при успешном входе в систему отображается форма 2.

f2.Show(); //form2 show
this.Hide(); //login(f1) hide

Thisработает.

Теперь я хочу, чтобы, если я нажму красную кнопку X (справа вверху), чтобы Form2 закрылась, и страница входа снова отображается.

Я попробовал это в Form2:

Form1 f1 = new Form1();
....
...
private void Main_FormClosing(object sender, FormClosingEventArgs e)
    {
      f1.show();
    }

Но это просто закройте Form2 и не открывайте From1, и программа все еще работает в фоновом режиме

1 Ответ

0 голосов
/ 06 июня 2018

В моем примере Form1 выполняет роль вашей LoginForm

проблемы в том, что вы убиваете Form2, который фактически создал экземпляр Form1 (здесь вашФорма входа).поэтому, когда экземпляр Form2 исчезнет, ​​все его локальный экземпляр тоже исчезнет.

вы можете сделать одну вещь, создавая из вас Form2 Form1 pass object of Form1 до Form2.

, поэтому вам не нужно создавать Form1 в Form2 и при его закрытии вы можете просто вызвать Form1 метод show.

, как показано ниже.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        //passing current class' object
        Form2 form2 = new Form2(this);

        form2.Show();
        this.Hide();
    }
}

и Форма 2:

public partial class Form2 : Form
{
    Form1 m_form1;
    public Form2(Form1 form1)
    {
        InitializeComponent();
        m_form1 = form1;
    }

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        m_form1.Show();
    }
}
...