我正在尝试关闭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();
}
答案 0 :(得分:3)
ShowDialog
将阻止,直到该对话框关闭,因此您无法在调用类中执行所需操作。我要做的是将this
指针传递给newDB
构造函数,暂时将其记住为Form
,并在Load
的{{1}}函数中调用传递newDB
Close
,从而完成你想要的东西。
如果您将其作为Window/Form
参数传递,Form
将不必“知道”您正在调用的确切具体类名,但您仍然可以调用{{1在它上面。
这有帮助吗?