我尝试在 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();
}
最佳答案
ShowDialog
将阻塞,直到该对话框关闭,因此您无法在调用类中执行您想要的操作。我要做的是将 this
指针传递给 newDB
构造函数,暂时将其作为 Form
记住,并在 Load<
函数,在传入的newDB
的Window/Form
上调用Close
,达到你想要的效果。
如果您将它作为 Form
参数传递,DB
将不必“知道”您正在调用的确切具体类名,但您仍然能够对其调用 Close
。
这有帮助吗?
关于C# 关闭按钮上的窗体单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319440/