获取或设置应用程序的主窗口。

命名空间:  SuperMap.Desktop
程序集:  SuperMap.Desktop.Core (in SuperMap.Desktop.Core)
版本: dll

语法

C#
public IFormMain MainForm { get; set; }

备注

主窗口主要用来处理界面布局的工作,包括生成 Ribbon 控件、生成浮动窗口、管理各种子窗口等等。

主窗口对应的类继承自 Form 类,同时必须同时实现 IForm 接口和 IFormMain 接口。有关 IForm 接口和 IFormMain 接口的详细信息,请参见 IForm 接口和 IFormMain 接口。

此外,由于 Ribbon 风格的窗口在 .NET Framework 默认的界面库里面没有提供,需要使用第三方的界面库,同时,考虑便于更换界面库的问题,SuperMap iDesktop 没有直接把第三方界面库的相关类型暴露给用户使用,这样就需要在中间增加一层,因此,提供了 FormBase 和 FormBaseChild 两个类,FormBase 类是主窗口的基类,FormBaseChild 类是子窗口的基类,如果主窗口从 FormBase 直接继承,其他的子窗口从 FormBaseChild 类继承,则用户窗口就会具有 Office2007 窗口的风格,否则,用户窗口就不具有 Office2007 窗口的风格。另外,这两个基类还处理了一些窗口关系的问题,同时对相关接口也进行了实现,如果不从这两个类继承,有些工作就需要用户自己重新去做。相关详细信息请参见 FormBase 类和 FormBaseChild 类。

示例

以下代码示范如何关闭浮动窗口、子窗口和执行Ribbon控件的功能(如关闭工作空间)。

CopyC#
override public void Run()
{
   //获取主窗口对象。
   IFormMain formMain = Application.ActiveApplication.MainForm;

   //通过FormManager关闭所有子窗口,并且不保存窗口内容。
   formMain.FormManager.CloseAll(false);

   //通过DockBarManager隐藏掉含有指定控件的浮动窗口。
   IDockBar dockBar = formMain.DockBarManager[typeof(MyUserControl)];
   if (dockBar != null)
       dockBar.Visible = false;

   //通过RibbonManager指定Ribbon控件的功能。
   IBaseItem baseItem = formMain.RibbonManager[typeof(MyCtrlActionCloseWorkspace)];
   if (baseItem != null)
       baseItem.CtrlAction.Run();
}

请参见