【问题标题】:C# closing a form on button ClickC#在按钮单击时关闭表单
【发布时间】:2013-12-02 01:21:22
【问题描述】:

我正在尝试在 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();
}

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    ShowDialog 将一直阻塞,直到该对话框关闭,所以你不能在调用类中做你想做的事。我要做的是将this指针传递给newDB构造函数,暂时记住它作为Form,并在newDBLoad函数中,在传入的Window/Form上调用Close ,从而完成你想要的。

    如果您将其作为Form 参数传递,DB 将不必“知道”您从中调用的确切具体类名,但您仍然可以在其上调用Close

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 2021-05-14
      • 2014-09-16
      相关资源
      最近更新 更多