C#按钮点击关闭窗体

4

我想在 button1_Click 事件之后关闭表单,我尝试在几个位置使用 this.Close(),但它不起作用。我希望按钮点击能打开一个名为 newDB 的新表单。但是当使用 this.Close() 时,它只会关闭表单而不打开我的新表单。是否有其他方法可以做到这一点,以便我可以关闭第一个表单并仍然打开 newDB 表单?

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Baseball.sdf; Persist Security Info=False;");

        DB newDB = new DB();
        newDB.ShowDialog();  
        this.Close();  
    }
    catch (Exception error)
    {
        MessageBox.Show("Could not connect to database!\n" + error, "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }

    // this.Close();
}
1个回答

3
ShowDialog 将会阻塞直到对话框关闭,因此您无法在调用类中执行想要的操作。我建议的做法是将 this 指针传递给 newDB 构造函数,在那里暂时将其作为一个 Form 记录下来,并在 newDBLoad 函数中,调用传入的 Window / Form 上的 Close 函数,以达到您想要的效果。
如果将其作为 Form 参数传递,则 DB 就不必了解您正在调用的具体类名,但仍然可以调用其上的 Close 函数。
这样有帮助吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接