/// <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); }
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); }