PropertyTab.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / Design / PropertyTab.cs / 1 / PropertyTab.cs

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

namespace System.Windows.Forms.Design { 
    using System.Runtime.InteropServices; 
    using System.ComponentModel;
    using System.Diagnostics; 
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using Microsoft.Win32; 

    ///  
    ///  
    ///    Provides a base class for property tabs.
    ///  
    [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")]
    public abstract class PropertyTab : IExtenderProvider {

        private Object[] components; 
        private Bitmap   bitmap;
        private bool     checkedBmp; 
 
        /// 
        ~PropertyTab() { 
            Dispose(false);
        }

        // don't override this. Just put a 16x16 bitmap in a file with the same name as your class in your resources. 
        /// 
        ///  
        ///    Gets or sets a bitmap to display in the property tab. 
        /// 
        public virtual Bitmap Bitmap { 
            get {
                if (!checkedBmp && bitmap == null) {
                    string bmpName = GetType().Name + ".bmp";
                    try 
                    {
                        bitmap = new Bitmap(GetType(), bmpName); 
                    } 
                    catch (Exception ex)
                    { 
                        Debug.Fail("Failed to find bitmap '" + bmpName + "' for class " + GetType().FullName, ex.ToString());
                    }
                    checkedBmp = true;
                } 
                return bitmap;
            } 
        } 

        // don't override this either. 
        /// 
        /// 
        ///    Gets or sets the array of components the property tab is associated with.
        ///  
        public virtual Object[] Components {
            get { 
                return components; 
            }
            set { 
                this.components = value;
            }
        }
 
        // okay.  Override this to give a good TabName.
        ///  
        ///  
        ///    Gets or sets the name for the property tab.
        ///  
        public abstract string TabName {
            get;
        }
 
        /// 
        ///  
        ///    Gets or sets the help keyword that is to be associated with this tab. This defaults 
        ///       to the tab name.
        ///  
        public virtual string HelpKeyword {
            get {
                return TabName;
            } 
        }
 
        // override this to reject components you don't want to support. 
        /// 
        ///  
        ///    Gets a value indicating whether the specified object be can extended.
        /// 
        public virtual bool CanExtend(Object extendee) {
            return true; 
        }
 
        ///  
        /// 
        ///    [To be supplied.] 
        /// 
        public virtual void Dispose() {
            Dispose(true);
            GC.SuppressFinalize(this); 
        }
 
        ///  
        protected virtual void Dispose(bool disposing) {
            if (disposing) { 
                if (bitmap != null) {
                    bitmap.Dispose();
                    bitmap = null;
                } 
            }
        } 
 
        // return the default property item
        ///  
        /// 
        ///    Gets the default property of the specified component.
        /// 
        public virtual PropertyDescriptor GetDefaultProperty(Object component) { 
            return TypeDescriptor.GetDefaultProperty(component);
        } 
 
        // okay, override this to return whatever you want to return... All properties must apply to component.
        ///  
        /// 
        ///    Gets the properties of the specified component.
        /// 
        public virtual PropertyDescriptorCollection GetProperties(Object component) { 
            return GetProperties(component, null);
        } 
 
        /// 
        ///  
        ///    Gets the properties of the specified component which match the specified
        ///       attributes.
        /// 
        public abstract PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes); 

        ///  
        ///  
        ///    Gets the properties of the specified component...
        ///  
        public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attributes) {
             return GetProperties(component, attributes);
        }
    } 
}
 

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

namespace System.Windows.Forms.Design { 
    using System.Runtime.InteropServices; 
    using System.ComponentModel;
    using System.Diagnostics; 
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using Microsoft.Win32; 

    ///  
    ///  
    ///    Provides a base class for property tabs.
    ///  
    [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")]
    public abstract class PropertyTab : IExtenderProvider {

        private Object[] components; 
        private Bitmap   bitmap;
        private bool     checkedBmp; 
 
        /// 
        ~PropertyTab() { 
            Dispose(false);
        }

        // don't override this. Just put a 16x16 bitmap in a file with the same name as your class in your resources. 
        /// 
        ///  
        ///    Gets or sets a bitmap to display in the property tab. 
        /// 
        public virtual Bitmap Bitmap { 
            get {
                if (!checkedBmp && bitmap == null) {
                    string bmpName = GetType().Name + ".bmp";
                    try 
                    {
                        bitmap = new Bitmap(GetType(), bmpName); 
                    } 
                    catch (Exception ex)
                    { 
                        Debug.Fail("Failed to find bitmap '" + bmpName + "' for class " + GetType().FullName, ex.ToString());
                    }
                    checkedBmp = true;
                } 
                return bitmap;
            } 
        } 

        // don't override this either. 
        /// 
        /// 
        ///    Gets or sets the array of components the property tab is associated with.
        ///  
        public virtual Object[] Components {
            get { 
                return components; 
            }
            set { 
                this.components = value;
            }
        }
 
        // okay.  Override this to give a good TabName.
        ///  
        ///  
        ///    Gets or sets the name for the property tab.
        ///  
        public abstract string TabName {
            get;
        }
 
        /// 
        ///  
        ///    Gets or sets the help keyword that is to be associated with this tab. This defaults 
        ///       to the tab name.
        ///  
        public virtual string HelpKeyword {
            get {
                return TabName;
            } 
        }
 
        // override this to reject components you don't want to support. 
        /// 
        ///  
        ///    Gets a value indicating whether the specified object be can extended.
        /// 
        public virtual bool CanExtend(Object extendee) {
            return true; 
        }
 
        ///  
        /// 
        ///    [To be supplied.] 
        /// 
        public virtual void Dispose() {
            Dispose(true);
            GC.SuppressFinalize(this); 
        }
 
        ///  
        protected virtual void Dispose(bool disposing) {
            if (disposing) { 
                if (bitmap != null) {
                    bitmap.Dispose();
                    bitmap = null;
                } 
            }
        } 
 
        // return the default property item
        ///  
        /// 
        ///    Gets the default property of the specified component.
        /// 
        public virtual PropertyDescriptor GetDefaultProperty(Object component) { 
            return TypeDescriptor.GetDefaultProperty(component);
        } 
 
        // okay, override this to return whatever you want to return... All properties must apply to component.
        ///  
        /// 
        ///    Gets the properties of the specified component.
        /// 
        public virtual PropertyDescriptorCollection GetProperties(Object component) { 
            return GetProperties(component, null);
        } 
 
        /// 
        ///  
        ///    Gets the properties of the specified component which match the specified
        ///       attributes.
        /// 
        public abstract PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes); 

        ///  
        ///  
        ///    Gets the properties of the specified component...
        ///  
        public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attributes) {
             return GetProperties(component, attributes);
        }
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

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