Files
docs-desktop/dotnet-desktop-guide/framework/winforms/controls/create-and-set-a-custom-renderer-for-the-toolstrip-control-in-wf.md
T
Andy De George c0ba284473 Initial winforms content migrated (#18)
* Merge winforms framework content to working branch (#14)

* Breadcrumb / TOC / Move net5 to net folder (#15)

* change path from net5 to net

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Add .net 5 winforms placeholder article (#16)

* added some metadata and adjusted net5 placeholder

* corrections

* corrections

* corrections

* Test1

* Swapping landing page vs concept

* fix links

* Fix links

* Fix desc
2020-09-01 16:26:21 -07:00

4.1 KiB

title, ms.date, dev_langs, helpviewer_keywords, ms.assetid
title ms.date dev_langs helpviewer_keywords ms.assetid
How to: Create and Set a Custom Renderer for the ToolStrip Control 03/30/2017
csharp
vb
ToolStrip control [Windows Forms], custom rendering
toolbars [Windows Forms], rendering
examples [Windows Forms], toolbars
ToolStrip control [Windows Forms], rendering
88a804ba-679f-4ba3-938a-0dc396199c5b

How to: Create and Set a Custom Renderer for the ToolStrip Control in Windows Forms

xref:System.Windows.Forms.ToolStrip controls give easy support to themes and styles. You can achieve completely custom appearance and behavior (look and feel) by setting either the xref:System.Windows.Forms.ToolStrip.Renderer%2A?displayProperty=nameWithType property or the xref:System.Windows.Forms.ToolStripManager.Renderer%2A?displayProperty=nameWithType property to a custom renderer.

You can assign renderers to each individual xref:System.Windows.Forms.ToolStrip, xref:System.Windows.Forms.MenuStrip, xref:System.Windows.Forms.ContextMenuStrip, or xref:System.Windows.Forms.StatusStrip control, or you can use the xref:System.Windows.Forms.ToolStripManager.Renderer%2A property to affect all objects by setting the xref:System.Windows.Forms.ToolStrip.RenderMode%2A?displayProperty=nameWithType property to xref:System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode?displayProperty=nameWithType.

Note

xref:System.Windows.Forms.ToolStrip.RenderMode%2A returns xref:System.Windows.Forms.ToolStripRenderMode.Custom only if the value of xref:System.Windows.Forms.ToolStrip.Renderer%2A?displayProperty=nameWithType is not null.

To create a custom renderer

  1. Extend the xref:System.Windows.Forms.ToolStripRenderer class.

  2. Implement desired custom rendering by overriding appropriate On… members

    Public Class RedTextRenderer  
        Inherits System.Windows.Forms.ToolStripRenderer  
        Protected Overrides Sub OnRenderItemText(ByVal e As _  
            ToolStripItemTextRenderEventArgs)
            e.TextColor = Color.Red  
            e.TextFont = New Font("Helvetica", 7, FontStyle.Bold)  
            MyBase.OnRenderItemText(e)  
        End Sub  
    End Class  
    
    public class RedTextRenderer : _  
        System.Windows.Forms.ToolStripRenderer  
    {  
        protected override void _  
            OnRenderItemText(ToolStripItemTextRenderEventArgs e)  
        {  
            e.TextColor = Color.Red;  
            e.TextFont = new Font("Helvetica", 7, FontStyle.Bold);  
           base.OnRenderItemText(e);  
        }  
    }  
    

To set the custom renderer to be the current renderer

  1. To set the custom renderer for one xref:System.Windows.Forms.ToolStrip, set the xref:System.Windows.Forms.ToolStrip.Renderer%2A?displayProperty=nameWithType property to the custom renderer.

    toolStrip1.Renderer = New RedTextRenderer()  
    
    toolStrip1.Renderer = new RedTextRenderer();  
    
  2. Or to set the custom renderer for all xref:System.Windows.Forms.ToolStrip classes contained in your application: Set the xref:System.Windows.Forms.ToolStripManager.Renderer%2A?displayProperty=nameWithType property to the custom renderer and set the xref:System.Windows.Forms.ToolStrip.RenderMode%2A property to xref:System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode.

    toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode  
    ToolStripManager.Renderer = New RedTextRenderer()  
    
    toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;  
    ToolStripManager.Renderer = new RedTextRenderer();  
    

See also