C# 关闭子窗体

C# 关闭子窗体,c#,winforms,mdi,C#,Winforms,Mdi,嗨,我有一个mdi应用程序。其中我有一个mdiparent,这是菜单表单。现在我有一个申请表单。现在,当所有的deatil都已填写完毕时,有一个对话框,上面显示详细信息已成功填写。在消息框中单击Ok(确定)后,我将返回菜单页面,并关闭申请表。但申请表未关闭。伊思仍然在幕后。 代码如下: private void btnsave_Click_1(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("r

嗨,我有一个mdi应用程序。其中我有一个
mdiparent
,这是菜单表单。现在我有一个申请表单。现在,当所有的deatil都已填写完毕时,有一个对话框,上面显示详细信息已成功填写。在
消息框中单击Ok(确定)
后,我将返回
菜单页面
,并关闭申请表。但申请表未关闭。伊思仍然在幕后。 代码如下:

private void btnsave_Click_1(object sender, EventArgs e)
{
 DialogResult dialogResult = MessageBox.Show("record saved", "requisition", MessageBoxButtons.OK, MessageBoxIcon.Information);
            if (dialogResult == DialogResult.OK)
            {

                frmmain main = new frmmain();
                main.Show();

                frmrequisition requisition = new frmrequisition();
                requisition.Close();
            }

            else
            {
                MessageBox.Show("error", "requisition", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }

}

创建新对象并关闭该对象。您需要有对当前显示的
frmrequisition
的引用

您正在创建请购单的新实例,并在该实例上调用close方法:

frmrequisition requisition = new frmrequisition();
requisition.Close();

您应该关闭正在显示的请购单。假设事件处理程序是请购单的一部分,您是否尝试过
this.Close()
;requision.Close()这是什么。。。是的,我指的就是这个例子。看看我是否创建了一个新的对象,然后它说请购单不存在。我在主窗体上创建了一个对象frmrequisition。是的,这个.close()有效。但当我调用frmmain main=new frmmain()时;main.Show();现在发生的又是另一个frmmain的例子正在形成。因此,创建了两种主要形式。旧的1和新的1。我怎样才能摆脱它。看看
this.MdiParent
。它应该是父窗体。如果未设置,请确保在从主窗体打开“请购单”时设置它。我的意思是,您应该显示现有的MdiParent,而不是创建主窗体的新实例。