Exemplo n.º 1
0
        /// <summary>
        /// 显示(打开)UI窗体
        /// 功能:
        /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理
        /// </summary>
        /// <param name="uiFormName">UI窗体预设的名称</param>
        public void showUIForms(string uiFormName)
        {
            BaseUIForm baseUIForms = null;                    //UI窗体基类

            //参数的检查
            if (string.IsNullOrEmpty(uiFormName))
            {
                return;
            }

            //根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
            baseUIForms = loadFormsToAllUIFormsCatch(uiFormName);
            if (baseUIForms == null)
            {
                return;
            }

            //是否清空“栈集合”中得数据
            if (baseUIForms.CurrentUIType.isClearStack)
            {
                clearStackArray();
            }

            //根据不同的UI窗体的显示模式,分别作不同的加载处理
            switch (baseUIForms.CurrentUIType.uiShowMode)
            {
            case UIShowMode.Normal:                     //“普通显示”窗口模式
                //把当前窗体加载到“当前窗体”集合中。
                loadUIToCurrentCache(uiFormName);
                break;

            case UIShowMode.Reverse:              //需要“反向切换”窗口模式
                pushUIFormToStack(uiFormName);
                break;

            case UIShowMode.HideOther:                  //“隐藏其他”窗口模式
                enterUIFormsAndHideOther(uiFormName);
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
 //(“反向切换”属性)窗体的出栈逻辑
 private void popUIFroms()
 {
     if (stackCurrentUI.Count >= 2)
     {
         //出栈处理
         BaseUIForm topUIForms = stackCurrentUI.Pop();
         //做隐藏处理
         topUIForms.hiding();
         //出栈后,下一个窗体做“重新显示”处理。
         BaseUIForm nextUIForms = stackCurrentUI.Peek();
         nextUIForms.redisplay();
     }
     else if (stackCurrentUI.Count == 1)
     {
         //出栈处理
         BaseUIForm topUIForms = stackCurrentUI.Pop();
         //做隐藏处理
         topUIForms.hiding();
     }
 }