2013-06-13 107 views
-2

嗨,目前我正在研究MDI应用程序。在此应用程序中,我的主要形式是MDI父窗体。通过whihc我去的MDI Child.now当所有的功能在子窗体完成时有一个消息框和OK的点击消息框我的子窗体应该关闭,我应该去主窗体。我的子窗体是closing.but发生的事情是为了进入主窗体,我正在创建一个父窗体的新实例。所以有2个主窗体打开。 这里是代码请帮助。关闭MDI孩子

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(); 
     this.Close(); 
    } 
    else 
     MessageBox.Show("error", "requisition", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    conn.Close(); 
} 
+0

只是隐藏你的MDI孩子,如果你真的不再需要它,摧毁它 –

+0

什么是“this”的上下文。它是MdiChild吗? –

+0

子窗体this.close()关闭子窗体没有问题。我只想回到父窗体而不创建该窗体的新实例。 – Kaushik27

回答

0

你想要做的是在MainForm

using (MdiChildForm form = new MdiChildForm()) 
{ 
    form.Showdialog(); 
} 

要关闭MdiChildFormMessageBox还好按钮后点击,在一些事件处理程序,你想

DialogResult dlgRes = MessageBox.Show("record saved", "requisition", 
    MessageBoxButtons.OK, MessageBoxIcon.Information); 
if (dlgRes == DialogResult.OK) 
    this.Close(); 

这将将控制返回到MainForm。它是如此简单。如果你得到两个MainForm s,有些东西你没有告诉我们。如果MainForm处于隐藏状态,即您在某个时刻执行mainForm.Hide();,则在关闭MdiChild之前,请执行this.MdiParent.Show();

我希望这会有所帮助。

+0

我在做什么是frmmain main = new frmmain(); main.show();它正在创建该主表单的另一个实例。我已经编写了该代码。 – Kaushik27

+0

那么不要那样做。简单。当子窗体关闭时,它将返回到父窗体。 – MoonKnight