65.9K
CodeProject is changing. Read more.
Home

Renderer for PropertyGrid

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (5 votes)

Apr 23, 2009

CPOL
viewsIcon

39723

downloadIcon

1410

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.

//
// 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.

ToolStripManager.RenderMode = ToolStripManagerRenderMode.System;

History

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