代码之家  ›  专栏  ›  技术社区  ›  Philip Fourie

阻止MDI窗口出现在窗口菜单列表中

  •  1
  • Philip Fourie  · 技术社区  · 16 年前

    我有一个.NET MDI应用程序,它使用 MDI Window List 自动将子MDI窗体填充到窗口菜单中。

    是否可以防止某些MDI子窗体不包含在此自动菜单列表中?

    要求:
    -此子窗体必须是MDI子窗体。
    -此窗体始终位于MDI窗体堆栈的底部。

    1 回复  |  直到 16 年前
        1
  •  1
  •   egyedg    16 年前

    您应该处理菜单项的DropDownOpening事件,并从列表中删除不需要的项。像这样的:

    MenuStrip ms = new MenuStrip();
    ToolStripMenuItem windowMenu = new ToolStripMenuItem("Window");
    ms.MdiWindowListItem = windowMenu;
    
    windowMenu.DropDownOpening += (sender, e) =>
            {
                if (windowMenu.DropDownItems.Count > 0)
                    windowMenu.DropDownItems.RemoveAt(0);
            };
    
    ms.Items.Add(windowMenu);
    ms.Dock = DockStyle.Top;            
    this.MainMenuStrip = ms;
    this.Controls.Add(ms);