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

时间:2013-03-16 23:29:32

标签: c# .net wpf visual-studio-2010

我有预订申请,所以当您按保存时,它会要求输入用户名和密码,如果用户名和密码正确,则会保存预订。但是,当它打开新窗口并且新窗口关闭时,它不会继续保存,如何在窗口关闭后进行保存?

这是保存按钮的代码。

 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;
                }

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我认为更好的方法是在模态模式下显示表单,如下所示:

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