C#关闭按钮上的表单单击

时间:2013-12-02 01:21:23

标签: c# winforms

我正在尝试关闭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 个答案:

答案 0 :(得分:3)

ShowDialog将阻止,直到该对话框关闭,因此您无法在调用类中执行所需操作。我要做的是将this指针传递给newDB构造函数,暂时将其记住为Form,并在Load的{​​{1}}函数中调用传递newDB Close,从而完成你想要的东西。

如果您将其作为Window/Form参数传递,Form将不必“知道”您正在调用的确切具体类名,但您仍然可以调用{{1在它上面。

这有帮助吗?