我目前正在使用窗体和mdi。在我的项目中有一个mainform(一个mdiContainer),它可以有x个子表单。我想要达到的目的是,每次都关闭子窗体,再次安排所有其他子窗体。关闭子窗体时从父窗体更改LayoutMdi
你可以做到这一点写入到的MainForm这样的:
public void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
this.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical);
}
在子窗体,我这样做:
private void subform_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
Form1 mainform = new Form1();
mainform.resetToolStripMenuItem_Click(mainform, EventArgs.Empty);
}
catch
{
System.Windows.Forms.MessageBox.Show("error");
}
}
它不给任何错误,也不会安排子窗体再次。我也尝试用其他参数调用该方法。
任何想法如何我可以使这项工作?
您每次关闭子窗体时都会启动一个新的主窗体。尝试删除该行。每当孩子关门时,不需要重新初始化mdi父母。 – tinstaafl 2014-09-24 21:06:26