Click here to Skip to main content
15,895,084 members
Articles / Desktop Programming / Windows Forms

Add Custom Properties to a PropertyGrid

Rate me:
Please Sign up or sign in to vote.
4.94/5 (219 votes)
22 Aug 2006Apache6 min read 1.6M   27.8K   443  
Extend a PropertyGrid with an Item collection; easy customization of properties with custom editor, custom converter and databinding.
namespace PropertyGridEx
{
    using System.Drawing;
    using System.Windows.Forms;

    public class CustomColorScheme : ProfessionalColorTable
	{
		
		
		public override Color ButtonCheckedGradientBegin
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color ButtonCheckedGradientEnd
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color ButtonCheckedGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color ButtonPressedBorder
		{
			get
			{
				return Color.FromArgb(0x31, 0x6A, 0xC5);
			}
		}
		
		public override Color ButtonPressedGradientBegin
		{
			get
			{
				return Color.FromArgb(0x98, 0xB5, 0xE2);
			}
		}
		
		public override Color ButtonPressedGradientEnd
		{
			get
			{
				return Color.FromArgb(0x98, 0xB5, 0xE2);
			}
		}
		
		public override Color ButtonPressedGradientMiddle
		{
			get
			{
				return Color.FromArgb(0x98, 0xB5, 0xE2);
			}
		}
		
		public override Color ButtonSelectedBorder
		{
			get
			{
				return base.ButtonSelectedBorder;
			}
		}
		
		public override Color ButtonSelectedGradientBegin
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color ButtonSelectedGradientEnd
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color ButtonSelectedGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color CheckBackground
		{
			get
			{
				return Color.FromArgb(0xE1, 230, 0xE8);
			}
		}
		
		public override Color CheckPressedBackground
		{
			get
			{
				return Color.FromArgb(0x31, 0x6A, 0xC5);
			}
		}
		
		public override Color CheckSelectedBackground
		{
			get
			{
				return Color.FromArgb(0x31, 0x6A, 0xC5);
			}
		}
		
		public override Color GripDark
		{
			get
			{
				return Color.FromArgb(0xC1, 190, 0xB3);
			}
		}
		
		public override Color GripLight
		{
			get
			{
				return Color.FromArgb(0xFF, 0xFF, 0xFF);
			}
		}
		
		public override Color ImageMarginGradientBegin
		{
			get
			{
				return Color.FromArgb(251, 250, 247);
			}
		}
		
		public override Color ImageMarginGradientEnd
		{
			get
			{
				return Color.FromArgb(0xBD, 0xBD, 0xA3);
			}
		}
		
		public override Color ImageMarginGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xEC, 0xE7, 0xE0);
			}
		}
		
		public override Color ImageMarginRevealedGradientBegin
		{
			get
			{
				return Color.FromArgb(0xF7, 0xF6, 0xEF);
			}
		}
		
		public override Color ImageMarginRevealedGradientEnd
		{
			get
			{
				return Color.FromArgb(230, 0xE3, 210);
			}
		}
		
		public override Color ImageMarginRevealedGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xF2, 240, 0xE4);
			}
		}
		
		public override Color MenuBorder
		{
			get
			{
				return Color.FromArgb(0x8A, 0x86, 0x7A);
			}
		}
		
		public override Color MenuItemBorder
		{
			get
			{
				return Color.FromArgb(0x31, 0x6A, 0xC5);
			}
		}
		
		public override Color MenuItemPressedGradientBegin
		{
			get
			{
				return base.MenuItemPressedGradientBegin;
			}
		}
		
		public override Color MenuItemPressedGradientEnd
		{
			get
			{
				return base.MenuItemPressedGradientEnd;
			}
		}
		
		public override Color MenuItemPressedGradientMiddle
		{
			get
			{
				return base.MenuItemPressedGradientMiddle;
			}
		}
		
		public override Color MenuItemSelected
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color MenuItemSelectedGradientBegin
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color MenuItemSelectedGradientEnd
		{
			get
			{
				return Color.FromArgb(0xC1, 210, 0xEE);
			}
		}
		
		public override Color MenuStripGradientBegin
		{
			get
			{
				return Color.FromArgb(0xE5, 0xE5, 0xD7);
			}
		}
		
		public override Color MenuStripGradientEnd
		{
			get
			{
				return Color.FromArgb(0xF4, 0xF2, 0xE8);
			}
		}
		
		public override Color OverflowButtonGradientBegin
		{
			get
			{
				return Color.FromArgb(0xF3, 0xF2, 240);
			}
		}
		
		public override Color OverflowButtonGradientEnd
		{
			get
			{
				return Color.FromArgb(0x92, 0x92, 0x76);
			}
		}
		
		public override Color OverflowButtonGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xE2, 0xE1, 0xDB);
			}
		}
		
		public override Color RaftingContainerGradientBegin
		{
			get
			{
				return Color.FromArgb(0xE5, 0xE5, 0xD7);
			}
		}
		
		public override Color RaftingContainerGradientEnd
		{
			get
			{
				return Color.FromArgb(0xF4, 0xF2, 0xE8);
			}
		}
		
		public override Color SeparatorDark
		{
			get
			{
				return Color.FromArgb(0xC5, 0xC2, 0xB8);
			}
		}
		
		public override Color SeparatorLight
		{
			get
			{
				return Color.FromArgb(0xFF, 0xFF, 0xFF);
			}
		}
		
		public override Color ToolStripBorder
		{
			get
			{
				return Color.FromArgb(0xA3, 0xA3, 0x7C);
			}
		}
		
		public override Color ToolStripDropDownBackground
		{
			get
			{
				return Color.FromArgb(0xFC, 0xFC, 0xF9);
			}
		}
		
		public override Color ToolStripGradientBegin
		{
			get
			{
				return Color.FromArgb(0xF7, 0xF6, 0xEF);
			}
		}
		
		public override Color ToolStripGradientEnd
		{
			get
			{
				return Color.FromArgb(192, 192, 168);
			}
		}
		
		public override Color ToolStripGradientMiddle
		{
			get
			{
				return Color.FromArgb(0xF2, 240, 0xE4);
			}
		}
		
		public override System.Drawing.Color ToolStripPanelGradientBegin
		{
			get
			{
				return Color.FromArgb(0xE5, 0xE5, 0xD7);
			}
		}
		
		public override System.Drawing.Color ToolStripPanelGradientEnd
		{
			get
			{
				return Color.FromArgb(0xF4, 0xF2, 0xE8);
			}
		}
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Apache License, Version 2.0


Written By
Software Developer (Senior)
Italy Italy
I am 40 years old and I've been working with C++, Visual Basic .NET, C# and ASP.NET. I have a large experience in Industrial Automation solutions, but I've worked also as Web developer and DBA. I like to share knowledge and projects with other people.

Comments and Discussions