protected internal virtual void CreateEditors() { if (this.propertyDescriptorCollection == null) { return; } foreach (PropertyDescriptor propertyDescriptor in this.propertyDescriptorCollection) { if (propertyDescriptor.IsBrowsable && !(propertyDescriptor.GetType().Name == "DataRelationPropertyDescriptor")) { string str = !(propertyDescriptor.Name != propertyDescriptor.DisplayName) || propertyDescriptor.DisplayName.Length <= 0 ? propertyDescriptor.Name : propertyDescriptor.DisplayName; if (!this.IsThisPropertyAlreadyCreated(str, propertyDescriptor)) { Control control; if (propertyDescriptor.PropertyType.IsEnum) { control = this.CreateEnum(propertyDescriptor); } else { switch (propertyDescriptor.PropertyType.Name) { case "DateTime": control = this.CreateDateTime(propertyDescriptor); break; case "Boolean": control = this.CreateBoolean(propertyDescriptor); break; case "Color": control = this.CreateColor(propertyDescriptor); break; case "Image": control = this.CreateImage(propertyDescriptor); break; default: control = this.CreateTextBox(propertyDescriptor); break; } } if (control != null) { control.Dock = DockStyle.Fill; control.Validating += new CancelEventHandler(this.control_Validating); control.Validated += new EventHandler(this.control_Validated); ErrorProvider errorProvider = new ErrorProvider(); errorProvider.SetIconAlignment(control, ErrorIconAlignment.MiddleRight); errorProvider.SetIconPadding(control, 2); errorProvider.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError; RadRangeAttribute radRangeAttribute = (RadRangeAttribute)null; foreach (Attribute attribute in propertyDescriptor.Attributes) { if (attribute is RadRangeAttribute) { radRangeAttribute = attribute as RadRangeAttribute; } } ValidationInfo validationInfo = new ValidationInfo(); validationInfo.RangeAttribute = radRangeAttribute; validationInfo.ErrorProvider = errorProvider; if (!this.validationInfoForEachEditor.ContainsKey(control)) { this.validationInfoForEachEditor.Add(control, validationInfo); } if (!this.editableProperties.ContainsKey(str)) { this.editableProperties.Add(str, control); } } } } } }