tzy
2021-05-14 0fa1534827bd21d763216550d11006fc1441c6cb
HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
old mode 100755 new mode 100644
@@ -16,7 +16,26 @@
        /// <summary>
        /// 画面的ID(自动编号,唯一主键,和各页面并无任何逻辑关系,但是它的用处大着呢)
        /// </summary>
        public string FormID = string.Empty;
        public string FormID = string.Empty;
        /// <summary>
        /// 左滑使能
        /// </summary>
        private bool m_ScrollLeftEnabled = true;
        /// <summary>
        /// 左滑使能(界面关闭时,底层会还原,无需再处理)
        /// </summary>
        public bool ScrollLeftEnabled
        {
            get { return m_ScrollLeftEnabled; }
            set
            {
                if (MainPage.BasePageView.ScrollEnabled != value)
                {
                    MainPage.BasePageView.ScrollEnabled = value;
                    this.m_ScrollLeftEnabled = value;
                }
            }
        }
        #endregion
@@ -51,19 +70,6 @@
        public virtual void AddForm(params object[] parameter)
        {
            return;
        }
        /// <summary>
        /// 添加指定画面,并移除当前画面,启动参数由指定画面的ShowForm函数所指定
        /// </summary>
        /// <param name="form">目标界面</param>
        /// <param name="parameter">启动参数:参数由指定画面的ShowForm函数所指定</param>
        public void AddFormAndCloseNowForm(CommonFormBase form, params object[] parameter)
        {
            //移除当前画面
            this.CloseForm();
            //添加画面
            form.AddForm(parameter);
        }
        #endregion
@@ -195,19 +201,6 @@
        #endregion
        #region ■ 一般的方法_________________________
        /// <summary>
        /// 显示信息框
        /// </summary>
        /// <param name="msgType">信息类型</param>
        /// <param name="msg">信息</param>
        /// <param name="action">单击确认后执行的回调函数</param>
        /// <param name="buttonText">按钮的文本</param>
        /// <param name="i_waitTime">等待时间,单位为秒,设置确认按钮在多长时间后才能够点击</param>
        public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null, int i_waitTime = -1)
        {
            HdlMessageLogic.Current.ShowMassage(msgType, msg, action, buttonText, i_waitTime);
        }
        /// <summary>
        /// 判断当前正在活动的界面是否是当前这个界面
@@ -226,6 +219,42 @@
        public int GetPictrueRealSize(int i_size)
        {
            return Application.GetRealWidth(i_size);
        }
        /// <summary>
        /// 获取图片里面,子控件文本的高度
        /// </summary>
        /// <param name="i_height">高度</param>
        /// <returns></returns>
        public int GetPicChidrenTextHeight(int i_height)
        {
            int value1 = Application.GetRealHeight(i_height);
            int value2 = Application.GetRealWidth(i_height);
            //当宽度比率大于高度时,用宽度
            if (value2 > value1)
            {
                return value2;
            }
            //否则,考虑到显示完全的问题,需要使用高度比率
            return value1;
        }
        /// <summary>
        /// 获取文本的真实宽度
        /// </summary>
        /// <param name="i_text">需要计算的文本</param>
        /// <param name="i_size">字体大小</param>
        /// <param name="i_isBold">是否是粗体</param>
        /// <returns></returns>
        public int GetTextRealWidth(string i_text, int i_size, bool i_isBold = false)
        {
            //定义一个临时的控件
            var btnTemp = new ButtonCtrBase();
            btnTemp.TextSize = i_size;
            btnTemp.IsBold = i_isBold;
            btnTemp.Text = i_text;
            return btnTemp.GetRealWidthByText();
        }
        #endregion
@@ -287,9 +316,11 @@
                return myMethod.Invoke(form, parameter);
            }
            catch (Exception ex)
            {
                //出现未知错误,数据丢失
                HdlMessageLogic.Current.ShowAppProgramIsError(ex);
            {
#if DEBUG
                //出现未知错误,数据丢失
                HdlMessageLogic.Current.ShowAppProgramIsError(ex);
#endif
                return null;
            }
        }