Слияние инструментальной панели MDI child - parent - PullRequest
4 голосов
/ 09 марта 2011

Я нашел некоторую информацию в Интернете, но ничто не помогло мне. Как я могу объединить toolstrip в родительской форме mdi?

Edit:

У меня получилось с таким кодом:

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 ]

6 голосов
/ 09 марта 2011

Вам нужно использовать ToolStripManager. У него есть метод с именем Merge(ToolStrip, ToolStrip), который делает то, что вы хотите. Смотрите здесь

Например:

ToolStripManager.Merge(((YourChildForm)this.ActiveMdiChild).ToolStrip, parentFormToolStrip);
0 голосов
/ 29 июля 2011

Из дочерней формы также можно выполнить следующее:

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
...