Переключение с формы 1 на форму 2 - PullRequest
0 голосов
/ 24 мая 2018

У меня есть 2 формы

form1 = login,
form2 = main 

Я пытался это переключиться с form1 на form2

(new Form2()).Show();
this.Hide();

И все работает нормально, но когда я закрываю программувсе еще отображается в диспетчере процессов / не прекращает отладку автоматически, так как это исправить?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я рекомендую совершенно другой и надежный метод.

Login.cs

public partial class Login: Form
{
    public bool isLogin=false;//This should be public
    public Login()
    {
        InitializeComponent();
    }



    private void CheckUsernamePassword(string username,string password){
        if(username=="yourname" && password =="yourpass"){
           isLogin=true;
           this.close();
        }else{
           MessageBox.Show("Wrong username or password");
        }

     }
 }

Program.cs

//Remove this line
"Application.Run(new Form1());" replace

Login login = new Login();
Application.Run(login);
if(login.isLogin){// User logged
     Application.Run(new main());
}

Этот код теперь будет работать очень успешно.

0 голосов
/ 24 мая 2018

Вам необходимо добавить эту строку:

form2.Closed += (s, args) => Close();

Таким образом, ваш код должен выглядеть примерно так:

Hide();
Form2 form2 = new Form2();
form2.Closed += (s, args) => Close();
form2.Show();

Это закроет Form1 при закрытии Form2.Если пользователь нажимает X или ALT + F4 или RightClick -> Close на Form2, Form2 и скрытый Form1 будут закрыты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...