amit555 Ответов: 3

закрытие формы входа в систему после успешного входа в систему


Я создаю небольшое приложение на языке C#. Я новичок в C#.

У меня есть 2 формы form1 & form2 в этой форме form1-это форма входа , после предоставления всех учетных данных она перенаправляется на form2. Но форма 1 (форма входа в систему)остается за ним. Я уже 2 раза закрывал его при успешном входе в систему.
Пожалуйста, помогите мне.
Заранее спасибо.

Abhinav S

Удален текстовый разговор,

3 Ответов

Рейтинг:
28

Tunacha

Ладно это мой первый раз когда я остаюсь на посту но я искал этого остряка earlyer так что я постараюсь вам помочь

Чтобы показать 2-ю форму, вы бы сделали

form2 f2 = new form2();
f2.Show();


Спрятаться за одно простое дело

form2 f2 = new Form2();
f2.Show();
this.hide();



Но недостатком этого является то, что, если вы закроете for2, Форма 1 все равно будет скрыта,
поэтому если вы хотите чтобы форма 2 закрыла все ваше приложение когда вы закроете форму 2 Сделайте это


private void btnLogin_Click(object sender, EventArgs e)
        {

                Form2 frm2 = new Form2();
                frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
                frm2.Show();
                this.Hide();
        }
        private void frm2_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Close();
        }
        }


я добавил это к своей кнопке входа в систему, поэтому, если они успешно войдут в систему, она скроет Form1 и покажет Form2, а затем, когда они захотят закрыть приложение, они просто закроют Form2

я надеюсь, что это имело смысл для вас, я потратил много времени, выясняя это прошлой ночью



Если вам еще понадобится помощь дайте мне знать


OriginalGriff

Не так уж плохо - но вы можете сделать его проще, используя:
<pre> Form2 frm2 = новая форма 2();
этот.Скрыть();
frm2.Метод showdialog();
Close();</pre>

Рейтинг:
1

Khaniya

Здравствуйте эксперты комментируют это

вы можете сделать это и без скрытия формы

Для этого вы должны использовать Main() в Program.cs в качестве запуска следующим образом

public static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            UI.FormUserLogin objForm = new UI.FormUserLogin();
            if (objForm.ShowDialog() == DialogResult.OK)
            {
                objForm.Dispose();
                Application.Run(new UI.FormMain(objForm.UserInfo));
            }
        }



здесь ваша форма входа в систему должна возвращать, является ли пользователь аутентифицированным или нет.

пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы, чтобы понять это.

:)


Рейтинг:
0

OriginalGriff

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

Любой:
1) скрыть форму 1 при входе в систему и показать форму 2. Затем вы можете закрыть либо закрыть Form1 (и приложение), когда Form2 закроется, либо повторно отобразить Form1 для нового входа в систему.
2) Измените основной метод в Program.cs, чтобы получить результат из формы 1 (успешный вход в систему или закрытие приложения), а затем отобразить форму 2 или закрыть ее в зависимости от обстоятельств.
3) Сделайте Form2 своей стартовой формой и отобразите свою форму входа в систему как часть конструктора.