public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
        {
            PropertyDescriptorCollection props         = base.GetProperties(attributes);
            List <PropertyDescriptor>    allProperties = new List <PropertyDescriptor>();

            DesignerHelper.AddDefaultProperties(allProperties, props);

            DesignerHelper.AddTextBasedProperties(allProperties, props);

            PropertyDescriptor prop = prop = props.Find("Text", true);

            allProperties.Add(prop);

            prop = props.Find("DrawBorder", true);
            allProperties.Add(prop);

            prop = props.Find("FrameColor", true);
            allProperties.Add(prop);

            prop = props.Find("ForeColor", true);
            allProperties.Add(prop);

            prop = props.Find("Visible", true);
            allProperties.Add(prop);

            prop = props.Find("Expression", true);
            allProperties.Add(prop);

            return(new PropertyDescriptorCollection(allProperties.ToArray()));
        }