this.MdiChildren[i].Activate();
this.MdiChildren[i].WindowState=FormWindowState.Normal;

解决方案 »

  1.   

    To  Viper ():在.NET中,改变MDI子窗口的状态既需要使用父窗口的函数,也需要调用子窗口的函数,这需要视情况而定。以下我列举了九种MDI的子窗口变化情况以及实现方法,其中this指向MDI父窗口:
    1)最大化所有子窗口只需要最大化某一个mdi child,即可最大化所有子窗口:
    this.ActiveMdiChild.WindowState=System.Windows.Forms.FormWindowState.Maximized;
    2)最小化所有子窗口(Minimize All):逐一最小化所有子窗口:
    foreach(Form form in this.MdiChildren)
    {
    form.WindowState=System.Windows.Forms.FormWindowState.Minimized;
    }
    3)使所有子窗口恢复普通大小逐一Normalize所有子窗口:
    foreach(Form form in this.MdiChildren)
    {
    form.WindowState=System.Windows.Forms.FormWindowState.Normal;
    }
    4)最大化当前激活子窗口this.ActiveMdiChild.WindowState=System.Windows.Forms.FormWindowState.Maximized;
    5)最小化当前激活子窗口this.ActiveMdiChild.WindowState=System.Windows.Forms.FormWindowState.Minimized;
    6)使当前子窗口恢复普通大小this.ActiveMdiChild.WindowState=System.Windows.Forms.FormWindowState.Normal;
    7)排列图标(Arrange Icons)this.LayoutMdi(MdiLayout.ArrangeIcons);
    需要注意的是,只有已经最小化的子窗口才会参与ArrangeIcon。
    8)层叠所有子窗口this.LayoutMdi(MdiLayout.Cascade);
    这个操作兼有ArrangeIcon的作用。他会将所有未最小化的子窗口变为统一大小并层叠,同时会将最小化的子窗口ArrangeIcon。
    9)并排所有子窗口this.LayoutMdi(MdiLayout.TileHorizontal);
    这个操作也兼有ArrangeIcon的作用,其余特点类似第八条。
    希望以上列举的一些操作能够对您有帮助,同时感谢您关心和使用微软的产品和技术。- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。