如何在子窗口处于活动状态时隐藏父窗口菜单栏

本文关键字:窗口 隐藏 菜单栏 活动状态 | 更新日期: 2023-09-27 18:34:38

我有两种形式。我在主窗口中创建了一个菜单栏并设置了IsMdicontainer= true.在第二个窗口中,我创建了菜单栏并设置了windowstate is maximize

我的问题是,当子窗口处于活动状态时,父窗口菜单栏也与子窗口菜单一起显示。我需要隐藏父窗口菜单栏,并且仅在子窗口关闭后显示它。

如何在子窗口处于活动状态时隐藏父窗口菜单栏

假设您从此菜单中打开子窗体,则可以使用ParentForm中的MdiChildActivate事件处理程序。
这甚至适用于多个子窗体。

    private void ParentForm_MdiChildActivate(object sender, EventArgs e)
    {
        int count = Application.OpenForms.
                                Cast<Form>().
                                Count(x => x.IsMdiChild);
        // The menu will be displayed again only if all subforms are closed
        parentFormMenu.Visible = (count <= 0);
    }