如何在另一个窗口关闭后继续运行代码

本文关键字:继续 运行 代码 另一个 窗口 | 更新日期: 2023-09-27 18:04:10

我有一个预订应用程序,所以当您按下save时,它要求输入用户名和密码,如果用户名和密码正确,它就保存预订。但是,当它打开新窗口,新窗口关闭时,它不进行保存,我如何使它在窗口关闭后进行保存?

这是保存按钮的代码。

 private void btnSave_Click(object sender, RoutedEventArgs e)
    {
        if (CheckClashes(Convert.ToDateTime(date_picker.SelectedDate)) == false)
        {
            // tries to see if validation is ok
            if (validate() == true)
            {
                var openLogin = new Login1();
                openLogin.Show();
                if (variables.login == true)
                {
//do save algorithm

下面是检查用户的用户名和密码时新窗口的代码。

  private void submit_Click(object sender, RoutedEventArgs e)
    {
        if (Validate() == true)
        {
            try
            {
               //authenticates user here
                if (hash1 == existingpassword.ToString())
                {
                    variables.login = true;
                    MessageBox.Show("User accepted.");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Incorrect username or password.");
                    variables.login = false;
                }

如何在另一个窗口关闭后继续运行代码

openLogin.Show()替换为openLogin.ShowDialog()。这将阻塞调用线程,直到Login窗口关闭。

我认为更好的方式是在modal模式下显示表单,像这样:

openLogin.ShowDialog();
if (openLogin.DialogResult == DialogResult.OK)
{
    //save here
}