【发布时间】:2010-03-11 13:28:46
【问题描述】:
我有一个 .NET MDI 应用程序,它使用 MDI Window List 自动将子 MDI 表单填充到窗口菜单中。
是否可以防止某些 MDI 子窗体不包含在此自动菜单列表中?
要求:
- 此子窗体必须是 MDI 子窗体。
- 此表单始终位于 MDI 表单堆栈的底部。
【问题讨论】:
我有一个 .NET MDI 应用程序,它使用 MDI Window List 自动将子 MDI 表单填充到窗口菜单中。
是否可以防止某些 MDI 子窗体不包含在此自动菜单列表中?
要求:
- 此子窗体必须是 MDI 子窗体。
- 此表单始终位于 MDI 表单堆栈的底部。
【问题讨论】:
您应该处理菜单项的 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);
【讨论】: