ToolStripCustomTypeDescriptor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripCustomTypeDescriptor.cs / 1 / ToolStripCustomTypeDescriptor.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 
namespace System.Windows.Forms.Design {
    using System.Design; 
    using System.ComponentModel;
    using System.Diagnostics;
    using System;
    using System.Collections; 
    using System.ComponentModel.Design;
    using System.ComponentModel.Design.Serialization; 
    using System.Windows.Forms; 

    ///  
    ///  ToolStripCustomTypeDescriptor class.
    /// 
    internal class ToolStripCustomTypeDescriptor : CustomTypeDescriptor
    { 

        ToolStrip instance = null; 
        PropertyDescriptor propItems = null; 
        PropertyDescriptorCollection collection = null;
 
        public ToolStripCustomTypeDescriptor(ToolStrip instance) : base()
        {
            this.instance = instance;
        } 

        ///  
        ///  
        ///     The GetPropertyOwner method returns an instance of an object that
        ///     owns the given property for the object this type descriptor is representing. 
        ///     An optional attribute array may be provided to filter the collection that is
        ///     returned.  Returning null from this method causes the TypeDescriptor object
        ///     to use its default type description services.
        ///  
        public override object GetPropertyOwner(PropertyDescriptor pd)
        { 
            return instance; 
        }
 
        /// 
        /// 
        ///     The GetProperties method returns a collection of property descriptors
        ///     for the object this type descriptor is representing.  An optional 
        ///     attribute array may be provided to filter the collection that is returned.
        ///     If no parent is provided,this will return an empty 
        ///     property collection. 
        /// 
        public override PropertyDescriptorCollection GetProperties() 
        {
            if (instance!= null && collection == null)
            {
                PropertyDescriptorCollection retColl = TypeDescriptor.GetProperties(instance); 
                PropertyDescriptor[] propArray = new PropertyDescriptor[retColl.Count];
 
                retColl.CopyTo(propArray, 0); 

                collection = new PropertyDescriptorCollection(propArray, false); 
            }
            if (collection.Count > 0)
            {
                propItems = collection["Items"]; 
                if (propItems != null)
                { 
                    collection.Remove(propItems); 
                }
            } 
            return collection;
        }

        ///  
        /// 
        ///     The GetProperties method returns a collection of property descriptors 
        ///     for the object this type descriptor is representing.  An optional 
        ///     attribute array may be provided to filter the collection that is returned.
        ///     If no parent is provided,this will return an empty 
        ///     property collection.
        ///     Here we will pass the "collection without the "items" property.
        /// 
        public override PropertyDescriptorCollection GetProperties(Attribute[] attributes) 
        {
            if (instance!= null && collection == null) 
            { 
                PropertyDescriptorCollection retColl = TypeDescriptor.GetProperties(instance);
                PropertyDescriptor[] propArray = new PropertyDescriptor[retColl.Count]; 

                retColl.CopyTo(propArray, 0);

                collection = new PropertyDescriptorCollection(propArray, false); 
            }
            if (collection.Count > 0) 
            { 
                propItems = collection["Items"];
                if (propItems != null) 
                {
                    collection.Remove(propItems);
                }
            } 
            return collection;
        } 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK