Click here to Skip to main content
15,860,859 members
Articles / Programming Languages / C#

Renderer for PropertyGrid

Rate me:
Please Sign up or sign in to vote.
4.75/5 (5 votes)
23 Apr 2009CPOL 39.2K   1.4K   49   1
Render all elements and color in PropertyGrid with ToolStripRenderer of Windows owner
RendererPropertyGrid

Introduction

I have some projects using PropertyGrid but the color is not beautiful. The original was 2 theme (System, XPTheme) only until I found the article "Changing the look and feel of the propertygrid" from seeshaper.

Background

But I need to change color and theme of the PropertyGrid when the parent form or MainMenu has changed property ToolStripManager. Thank you for every idea below.

Using the Code

Add the control to the tool box of Visual Studio or re-build this class in your project. The control look and feel will change with your MainMenu automatically.

C#
//
// Change test
//
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (this.comboBox1.SelectedIndex)
    {
        case 0: //System
            ToolStripManager.Renderer = new ToolStripSystemRenderer();
            // Must set this !!
            ToolStripManager.RenderMode = ToolStripManagerRenderMode.System;
            break;
        case 1: // Professional
            ToolStripManager.Renderer = new ToolStripProfessionalRenderer();
            //ToolStripManager.RenderMode = ToolStripManagerRenderMode.Professional;
            break;
        case 2: // Office2007 Blue
            ToolStripManager.Renderer = new Office2007Renderer.Office2007Renderer();
            //ToolStripManager.RenderMode = ToolStripManagerRenderMode.Custom;
            break;
        case 3: // VS2005 Tan
            ToolStripManager.Renderer = 
		new ToolStripProfessionalRenderer(new TanColorTable());
            //ToolStripManager.RenderMode = ToolStripManagerRenderMode.Custom;
            break;
        default:
            break;
    }
}

Point of Interest

If you set your application to render with System Renderer, please set RenderMode to System.

C#
ToolStripManager.RenderMode = ToolStripManagerRenderMode.System;

History

  • 2009-April-22: Published
  • 2009-April-23: Updated control at design-time

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Thailand Thailand
He start from web developer(asp classic) since 1997, and now use .net techonogy(c#, vb.net).

Comments and Discussions

 
GeneralGreat work dear!!! Pin
cpparasite29-Apr-09 19:54
cpparasite29-Apr-09 19:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.