合并工具条MDI子 - 父

时间:2011-03-09 19:39:55

标签: c# winforms merge mdi

我在互联网上发现了一些信息,但没有任何帮助我。 如何合并父mdi表单中的工具条?

编辑:

这段代码对我有用:

private void MainForm_MdiChildActivate(object sender, EventArgs e)
{
    IChildWindow child = ActiveMdiChild as IChildWindow;

    if (child != null)
    {
        ToolStripManager.Merge(child.ToolStrip, toolStrip1);
        child.ToolStrip.Hide();

        child.FormClosing += delegate(object sender2, FormClosingEventArgs fe)
        {
            child.ToolStrip.Show();
            ToolStripManager.RevertMerge(toolStrip1, child.ToolStrip);
        };
    }
}

2 个答案:

答案 0 :(得分:6)

您需要使用ToolStripManager。它有一个名为Merge(ToolStrip, ToolStrip)的方法可以满足您的需求。 See here

例如:

ToolStripManager.Merge(((YourChildForm)this.ActiveMdiChild).ToolStrip, parentFormToolStrip);

答案 1 :(得分:0)

在子表单中,还可以执行以下操作:

Private Sub Child_ParentChanged(sender As Object, e As System.EventArgs) Handles Me.ParentChanged
    Try
        ToolStripManager.Merge(Me.ToolStrip, TryCast(sender.mdiParent, frmMain).ToolStrip)
    Catch ex As Exception
        mErrorLog.ApplicationErrorLog(Me.GetType.Name, "frmTechSelectWO_ParentChanged", ex.ToString)
    Finally
        Me.ToolStrip.Hide()
        Me.MenuStrip1.Hide()
    End Try
End Sub


Private Sub Child_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    '
    ' Clean up the parent toolbar
    Try
        ToolStripManager.RevertMerge(TryCast(Me.MdiParent, frmMain).ToolStrip)
    Catch ex As Exception
    End Try
End Sub