public InputTextBoxField Clone() { InputTextBoxField clone = (InputTextBoxField)this.MemberwiseClone(); base.AssignMembers(clone); return(clone); }
private List<Control> GetControls(InputTextBoxField field, Size canvasSize) { TextBoxBase textBoxBase; List<Control> controls = new List<Control>(); if (field is IPatternable) { textBoxBase = new MaskedTextBox(); ((MaskedTextBox)textBoxBase).HidePromptOnLeave = true; textBoxBase.Text = string.Empty; textBoxBase.BorderStyle = borderStyle; ((MaskedTextBox)textBoxBase).Mask = AppData.Instance.DataPatternsDataTable.GetMaskByPattern(((IPatternable)field).Pattern); if (field is PhoneNumberField) { if(((MaskedTextBox)textBoxBase).Mask == string.Empty) { ((MaskedTextBox)textBoxBase).Mask = "CCCCCCCCCCCCCCCCCCCC"; } } SetControlProperties(textBoxBase, field, canvasSize); Label prompt = GetPrompt(textBoxBase, field, canvasSize); prompt.Name = field.Name; controls.Add(prompt); } else if(field is MultilineTextField) { textBoxBase = new RichTextBox(); textBoxBase.BorderStyle = borderStyle; textBoxBase.Multiline = true; SetControlProperties(textBoxBase, field, canvasSize); TransparentLabel prompt = GetPrompt(textBoxBase, field, canvasSize); prompt.Name = field.Name; controls.Add(prompt); } else if (field is DateTimeField) { textBoxBase = new TextBox(); textBoxBase.BorderStyle = borderStyle; SetControlProperties(textBoxBase, field, canvasSize); TransparentLabel prompt = GetPrompt(textBoxBase, field, canvasSize); prompt.Name = field.Name; controls.Add(prompt); } else { textBoxBase = new TextBox(); textBoxBase.BorderStyle = borderStyle; textBoxBase.MaxLength = ((SingleLineTextField)field).MaxLength; SetControlProperties(textBoxBase, field, canvasSize); TransparentLabel prompt = GetPrompt(textBoxBase, field, canvasSize); prompt.Name = field.Name; controls.Add(prompt); } controls.Add(textBoxBase); if (!fieldControls.ContainsKey(field)) { fieldControls.Add(field, controls); } else { fieldControls.Remove(field); fieldControls.Add(field, controls); } return controls; }