1

我正在组合一个与 SQL 数据库交互的简单 UI。我的问题是 UI 问题,每次选择 menustrip 项目时,它都会打开一个新的活动窗口。如何设置它以关闭上一个活动窗口?我尝试过使用 Form.Close();,但这只会关闭所有内容。

private void addCampusToolStripMenuItem_Click(object sender, EventArgs e)
{
    if_add_campus go = new if_add_campus();
    go.Show();
}

private void addDepartmentToolStripMenuItem_Click(object sender, EventArgs e)
{
    if_add_dept go = new if_add_dept();
    go.Show();
}

private void addEmployeToolStripMenuItem_Click(object sender, EventArgs e)
{
    if_add_employee go = new if_add_employee();
    go.Show();
}
4

1 回答 1

1

只需跟踪您在变量中创建的最后一个表单:

    private Form lastForm;

    private void showForm(Form frm) {
        frm.FormClosed += (sender, ea) => {
            if (object.ReferenceEquals(lastForm, sender)) lastForm = null;
        };
        frm.Show();
        if (lastForm != null) lastForm.Close();
        lastForm = frm;
    }

并使用 showForm() 显示您的表单:

private void addCampusToolStripMenuItem_Click(object sender, EventArgs e)
{
    showForm(new if_add_campus());
}

未测试,应该是接近的。

于 2013-03-13T22:07:17.520 回答