我继续使用登录表单后无法隐藏表单

时间:2018-02-10 23:02:11

标签: c#

private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        Wrong_Username_or_Password Wrong_Username_Or_Password = new Wrong_Username_or_Password();
        Missing_Password_and_Username Missing_Password_And_Username = new Missing_Password_and_Username();
        Main Main = new Main();
        if (e.KeyValue == 13)
        {
            e.Handled = true;
            e.SuppressKeyPress = true;
            if (textBox1.Text == "Test" && textBox2.Text == "Test")
            {
                Missing_Password_And_Username.Hide();
                Wrong_Username_Or_Password.Hide();
                this.Hide();
                Main.Show();
            }
            else if (textBox1.Text == "" && textBox2.Text == "")
            {
                Missing_Password_And_Username.Show();
            }
            else
            {
                Wrong_Username_Or_Password.Show();
            }
        }
    }

我进行登录后无法隐藏Missing_Password_And_Username表单和Wrong_Username_Or_Password表单,但我可以隐藏此表单,我不知道如何隐藏这两个表单,我不想使用showdialog来制作用户关闭表单,因为当你在表单外按时我不喜欢“叮”声。

1 个答案:

答案 0 :(得分:0)

据我所知,问题是您在每个按键上创建表单 Wrong_Username_or_Password Missing_Password_and_Username 的新实例。如果您在最后一次按键事件期间显示了其中一个表单实例,则在当前按键事件期间您将丢失它们(因为它们刚刚创建并覆盖了相应的本地表单变量)。你实际上是想隐藏你从未表现过的形式。

将表单变量及其初始化移出keypress事件处理程序,并使其成为this-Form的本地变量。这应该解决它。