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