DesignerSerializationVisibility, Browsable,Category Attribute

         1.  DesignerSerializationVisibility

指在design time的时候,在property grid中设置的某个属性的值是否应该插入到InitializeComponent的代码中去。

·         Visible 默认值,会插入中去。

·         Hidden 不会插入中去。

·         Content  将该属性中所有的为public的子属性插入中去。

例如下面的例子:
public partial class ContentSerializationExampleControl : UserControl
    {
        
public ContentSerializationExampleControl()
        {
            InitializeComponent();
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        
public DimensionData Dimensions
        {
            
get
            {
                
return new DimensionData(this);
            }
        }

        [TypeConverterAttribute(
typeof(System.ComponentModel.ExpandableObjectConverter))]
        
// This attribute indicates that the public properties of this object should be listed in the property grid.
        public class DimensionData
        {
            
private Control owner;

            
// This class reads and writes the Location and Size properties from the Control which it is initialized to.
            internal DimensionData(Control owner)
            {
                
this.owner = owner;
            }

            
public Point Location
            {
                
get
                {
                    
return owner.Location;
                }
                
set
                {
                    owner.Location 
= value;
                }
            }

            
public Size FormSize
            {
                
get
                {
                    
return owner.Size;
                }
                
set
                {
                    owner.Size 
= value;
                }
            }
        }
    }
则DimensionData的Location和FormSize属性都会出现在InitializeComponent中。

2. Category:指定属性出现在property grid中的哪个组中。
3. Browsable:指定属性是否显示在property grid中

原文地址:https://www.cnblogs.com/bear831204/p/1415695.html