How to: Custom Draw a ToolStrip Control

The ToolStrip controls have the following associated rendering (painting) classes:

To custom draw (also known as owner draw) a ToolStrip, you can override one of the renderer classes and change an aspect of the rendering logic.

The following procedures describe various aspects of custom drawing.

To switch between the provided renderers

To change the Microsoft Office–style borders to straight

Note

There is a version of this method for ToolStripRenderer, ToolStripSystemRenderer, and ToolStripProfessionalRenderer.

To change the ProfessionalColorTable

  • Override ProfessionalColorTable and change the colors you want.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _  
    System.EventArgs) Handles Me.Load  
        Dim t As MyColorTable = New MyColorTable  
        ToolStrip1.Renderer = New ToolStripProfessionalRenderer(t)  
    End Sub  
    
    Class MyColorTable   
    Inherits ProfessionalColorTable  
    
    Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color  
        Get  
            Return Color.Red  
        End Get  
    End Property  
    
    Public Overrides ReadOnly Property ButtonPressedGradientMiddle() _  
    As System.Drawing.Color  
        Get  
            Return Color.Blue  
        End Get  
            End Property  
    
    Public Overrides ReadOnly Property ButtonPressedGradientEnd() _  
    As System.Drawing.Color  
        Get  
            Return Color.Green  
        End Get  
    End Property  
    
    Public Overrides ReadOnly Property ButtonSelectedGradientBegin() _  
    As Color  
        Get  
            Return Color.Yellow  
        End Get  
    End Property  
    
    Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color  
        Get  
            Return Color.Orange  
        End Get  
    End Property  
    
    Public Overrides ReadOnly Property ButtonSelectedGradientEnd() _  
    As System.Drawing.Color  
        Get  
            Return Color.Violet  
        End Get  
    End Property  
    End Class  
    

To change the rendering for all ToolStrip controls in your application

  1. Use the System.Windows.Forms.ToolStripManager.RenderMode property to choose one of the provided renderers.

  2. Use System.Windows.Forms.ToolStripManager.Renderer to assign a custom renderer.

  3. Ensure that System.Windows.Forms.ToolStrip.RenderMode is set to the default value of ManagerRenderMode.

To turn off the Microsoft Office colors for the entire application

To turn off the Microsoft Office colors for one ToolStrip control

  • Use code similar to the following code example.

    Dim colorTable As ProfessionalColorTable()  
    colorTable.UseSystemColors = True  
    Dim toolStrip.Renderer As ToolStripProfessionalRenderer(colorTable)  
    
    ProfessionalColorTable colorTable = new ProfessionalColorTable();  
    colorTable.UseSystemColors = true;  
    toolStrip.Renderer = new ToolStripProfessionalRenderer(colorTable);  
    

See Also

ToolStripSystemRenderer
ToolStripProfessionalRenderer
ToolStripRenderer
Controls with Built-In Owner-Drawing Support
How to: Create and Set a Custom Renderer for the ToolStrip Control in Windows Forms
ToolStrip Control Overview