C# 如何使用c在mdi中单击另一个子窗体时关闭上一个子窗体#

C# 如何使用c在mdi中单击另一个子窗体时关闭上一个子窗体#,c#,forms,C#,Forms,我有一个mdi父窗体,我在运行时以mdi子窗体的形式打开其他窗体,代码如下: private void winAppToolStripMenuItem_Click(object sender, EventArgs e) { Upload objWA = new Upload(); objWA.MdiParent = this; objWA.Show(); //objWA.WindowS

我有一个mdi父窗体,我在运行时以mdi子窗体的形式打开其他窗体,代码如下:

private void winAppToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Upload objWA = new Upload();
            objWA.MdiParent = this;
            objWA.Show();
            //objWA.WindowState = FormWindowState.Maximized;
        }

        private void userInfoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Reports objUI = new Reports();
            objUI.MdiParent = this;
            objUI.Show();
            //objUI.WindowState = FormWindowState.Maximized;
        }
但问题是:当当前表单打开时,用户可以打开另一个表单,并且可以重复多次,以便打开每个表单。在用户打开新的子表单之前,关闭上一个子表单的代码是什么

供参考的屏幕截图

这是从:

这是从:

让我知道它是否有效,因为我只是编造出来的


让我知道它是否有效,因为我刚刚制作了一个

可能的副本,我已经尝试过了,但它不起作用。创建新实例时,是否要关闭表单的以前实例?如果是这样,那么上一个表单中任何未保存的数据都会丢失。单击新表单时,我应该关闭或隐藏上一个表单。可能重复我已尝试过此操作,但不起作用。创建新实例时,是否要关闭表单的上一个实例?如果是这样,,那么,上一个表单中任何未保存的数据都将丢失。我应该在单击新表单时关闭或隐藏上一个表单。您是否可以编辑我的帖子,并显示我应该在哪里包含您的代码,因为我对此完全陌生?您是否可以编辑我的帖子,并显示我应该在哪里包含您的代码,因为我对此完全陌生这是我在处理按钮附近得到的三个错误(表objUI);错误1)预期错误2无效表达式项“')”错误3;预期我在处理按钮附近得到三个错误(表objUI);错误1)预期错误2无效表达式项“')”错误3;预期
public void DisposeAllButThis(Form form){
foreach (Form frm in this.MdiChildren)
{
    if (frm.GetType() == form.GetType() 
        && frm != form)
    {
        frm.Dispose();
        frm.Close();
    }
}}
private void winAppToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Upload objWA = new Upload();
        objWA.MdiParent = this;
        objWA.Show();
        //objWA.WindowState = FormWindowState.Maximized;
    }

    private void userInfoToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Reports objUI = new Reports();
        objUI.MdiParent = this;
        objUI.Show();
        DisposeAllButThis(Form objUI);
        //objUI.WindowState = FormWindowState.Maximized;
    }
    public void DisposeAllButThis(Form form)
    {
        foreach (Form frm in this.MdiChildren)
        {
            if (frm.GetType() == form.GetType() 
                && frm != form)
            {
                frm.Dispose();
                frm.Close();
            }
        }
    }