• LiggEasyWinApp-103-Ligg.EasyWinForm:View


    首先请在VS里打开下面的文件,我们将对源码分段进行说明:

    View(视图):一个Function(功能)对应多个View(视图),本框架用View(视图)实现多窗体(MDI)的效果。 一个View(视图)由多个Area(域)组成,Area(域)是FrameForm上各个Region上的一个Panel。Area(域)下面再包含Zone(区)。

    View的配置

        请看Ligg.EasyWinApp-103-00-Ligg.EasyWinForm:View的配置

     

    View的初始化

    对于MultipleView

        首先通过MergeViewItems从  .Applicationsxxxx(Apllication)ClientsFormFunctionsyyyy(Function) ViewsPublic(View).xml读取Public View的数据到_layoutElemets。然后Render,最后再设置Public View状态为Unchecked。当点击ViewMenuItem的时候, Checked的View会被隐藏;Public View是总是显示的View,其他View如果不是当前View,会被隐藏,所以Public View的状态永远是Unchecked。

    对于SingleView

        会把Zone的zoneLayoutElement“包装”成一条Public View 的数据,追加到layoutElemets,然后Render。

         对于SingleView,不存在显示隐藏View的问题,所以也不用设置状态。

     

    View的显示和隐藏

        前文讲过:ViewMenuItem点击时会触发ViewMenuItemClickHandler,显示当前View 并隐藏前一个View。我们现在来看代码:

     

        对于Simple类型的菜单项,如果已经Render过的View,则显示当前的View的ContentArea和ViewMenuArea,再隐藏前一个View的的ContentArea和ViewMenuArea;如果是如果没有Render过的View,则先读取、Render,再隐藏前一个View的ContentArea和ViewMenuArea。

     

        对于Customized类型的菜单项,如果已经Render过的View,则显示当前的View的ContentArea,再隐藏前一个View的的ContentArea;如果是如果没有Render过的View,则先读取、Render,再隐藏前一个View的ContentArea。

    Zone的控件如何生成、显示以及控件的动作,请看下一章节文档。

    LiggEasyWinApp-104-Ligg.EasyWinFormZone

  • 相关阅读:
    cxgrid动态创建列
    cxgrid显示海量数据
    Delphi 两个应用程序(进程)之间的通信
    Delphi实现窗体内嵌其他应用程序窗体
    Change tab position of PageControl to bottom
    how can I make the login form transparent?
    UniDBGrid增加显示记录数的label及隐藏refresh按钮
    java工厂模式实例化class
    Java 语言细节
    applet示例 WelcomeApplet.java <Core Java>
  • 原文地址:https://www.cnblogs.com/liggin2019/p/11963127.html
Copyright © 2020-2023  润新知