Exemplo n.º 1
0
        /// <summary>
        /// 转换成控件
        /// </summary>
        /// <returns></returns>
        public Control ToControl(bool childTranslate = false)
        {
            PmsPanel panel = new PmsPanel(this);

            if (null != Elements)
            {
                foreach (IElement element in Elements)
                {
                    IControlTranslator ct = element as IControlTranslator;
                    if (null != ct)
                    {
                        Control ctrl = ct.ToControl(childTranslate);
                        if (null != ctrl)
                        {
                            panel.Controls.Add(ctrl);
                        }
                    }
                }
            }
            return(panel);
        }
Exemplo n.º 2
0
        public override object Clone()
        {
            PmsPanel panel = new PmsPanel();

            panel.BackColor  = this.BackColor;
            panel.Anchor     = this.Anchor;
            panel.Bounds     = this.Bounds;
            panel.BorderName = this.BorderName;
            if (null != ExternDatas && ExternDatas.Count > 0)
            {
                if (null == panel.ExternDatas)
                {
                    panel.ExternDatas = new List <ExternData>();
                }
                foreach (ExternData ed in this.ExternDatas)
                {
                    object value = ed.Value;
                    if (null != value && value is ICloneable)
                    {
                        value = ((ICloneable)value).Clone();
                    }
                    panel.ExternDatas.Add(new ExternData(ed.Key, value));
                }
            }
            if (null != this.Border)
            {
                panel.Border = this.Border.Clone() as ElementBorder;
                panel.Border.OwnerElement = panel;
            }
            panel.Transparent     = this.Transparent;
            panel.ForeColor       = this.ForeColor;
            panel.HasBottomBorder = this.HasBottomBorder;
            panel.HasLeftBorder   = this.HasLeftBorder;
            panel.HasRightBorder  = this.HasRightBorder;
            panel.HasTopBorder    = this.HasTopBorder;
            panel.Height          = this.Height;
            panel.Width           = this.Width;
            panel.VerticalScale   = this.VerticalScale;
            panel.HorizontalScale = this.HorizontalScale;
            panel.Location        = this.Location;
            panel.Left            = this.Left;
            panel.Top             = this.Top;
            panel.Text            = this.Text;
            panel.RealText        = this.RealText;
            panel.Region          = this.Region;
            panel.RightToLeft     = this.RightToLeft;
            panel.HasBorder       = this.HasBorder;
            panel.OrginalLocation = this.Location;
            panel.AutoSize        = AutoSize;
            panel.Visible         = Visible;
            panel.MESType         = MESType;
            try
            {
                panel.Font = new Font(this.Font.FontFamily, this.Font.Size);
            }
            catch (Exception)
            {
            }
            if (null != this.SourceField)
            {
                panel.SourceField = this.SourceField.Clone() as SourceField;
            }
            panel.Size = this.Size;

            foreach (Control ctrl in this.Controls)
            {
                if (null != ctrl)
                {
                    Type type = ctrl.GetType();
                    if (null != type.GetInterface(typeof(ICloneable).FullName))
                    {
                        panel.Controls.Add(((ICloneable)ctrl).Clone() as Control);
                    }
                }
            }
            panel.MoveX             = this.MoveX;
            panel.MoveY             = this.MoveY;
            panel.Name              = this.Name;
            panel.TotalHeight       = this.TotalHeight;
            panel.OrignalHeight     = this.OrignalHeight;
            panel.VisibleExpression = VisibleExpression;
            panel.DisplayNullRecord = DisplayNullRecord;
            if (null != Tag)
            {
                if (Tag is ICloneable)
                {
                    panel.Tag = ((ICloneable)Tag).Clone();
                }
                else
                {
                    panel.Tag = Tag;
                }
            }

            if (null != ((IElement)this).ExtendObject)
            {
                ((IElement)panel).ExtendObject = ((IElement)this).ExtendObject.Clone() as ExtendObject;
            }
            return(panel);
        }