多文档窗体中的窗口菜单中,会显示当前打开的子窗体列表,请问这个功能怎么实现?我使用VB程序向导建立一个多文档程序,它有这个功能,可是我怎么没有找到相关代码?请帮忙写出代码,谢谢。

解决方案 »

  1.   

    在不同的 Windows 窗体布局选项中有一种是多文档界面 (MDI)。有一个简便方法跟踪应用程序打开的不同 MDI 子窗口——使用“窗口”列表。不仅能跟踪有焦点的 MDI 子窗体,而且能跟踪所有打开的 MDI 子窗体——这一功能是 Visual Studio .NET 框架的一部分;可通过设置菜单项的 MDIList 属性来实现此功能。为 MDI 窗体创建“窗口”列表 在“属性”窗口中,将 MDI 窗体的 IsMDIContainer 属性设置为 true。 
    在“解决方案资源管理器”中,右击该项目,单击“添加”,然后单击“Windows 窗体”。 
    从“工具箱”中,将 MainMenu 组件添加到 MDI 父窗体中。有关向窗体添加控件的更多信息,请参阅向 Windows 窗体添加控件。 
    单击 MDI 父窗体使之拥有焦点。在“属性”窗口中,将“菜单”属性设置为 MainMenu1。 
    使用“菜单设计器”将下列顶级菜单项添加到 MainMenu 组件中。菜单项 文本 
    MenuItem1 文件(&F) 
    MenuItem2 窗口(&W) 有关向 MainMenu 组件添加菜单项的更多信息,请参阅向 Windows 窗体添加菜单和菜单项。 在“菜单设计器”中,将子菜单项 (MenuItem3) 添加到 MenuItem1 中。将其 Text 属性设置为“新建(&N)”。 
    有关向菜单项添加子菜单项的更多信息,请参阅向 Windows 窗体添加菜单和菜单项。 在“属性”窗口中,从下拉列表中选择 MenuItem2。将 MDIList 属性设置为 true。 
    为 MenuItem3 创建 Click 事件的事件处理程序。有关创建事件的更多信息,请参阅在“Windows 窗体设计器”上创建事件处理程序。 
    在该事件处理程序内,插入类似于下列的代码,以创建和显示作为 Form1 的 MDI 子代的 Form2 新实例: 
    'Visual Basic
    Protected Sub New_OnClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
       'Create a new instance of Form2
       Dim NewMDIChild As New Form2()
       'Set the parent of the MDI child form.
       NewMDIChild.MDIParent = Me
       'Display the new form.
       NewMDIChild.Show()
    End Sub
    按 F5 键运行该应用程序。从“文件”菜单中,选择“新建”创建新 MDI 子窗体。请注意,“窗口”菜单始终显示在应用程序内打开的 MDI 子窗体的列表,在具有焦点的 MDI 子窗体旁有复选标记。