| title | ms.custom | ms.date | ms.prod | ms.reviewer | ms.suite | ms.technology | ms.tgt_pltfrm | ms.topic | dev_langs | helpviewer_keywords | ms.assetid | caps.latest.revision | author | ms.author | manager | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
How to: Create and Set a Custom Renderer for the ToolStrip Control in Windows Forms |
03/30/2017 |
.net-framework |
|
article |
|
|
88a804ba-679f-4ba3-938a-0dc396199c5b |
16 |
dotnet-bot |
dotnetcontent |
wpickett |
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
-
Extend the xref:System.Windows.Forms.ToolStripRenderer class.
-
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
-
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();
-
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
xref:System.Windows.Forms.ToolStripManager.Renderer%2A
xref:System.Windows.Forms.ToolStripRenderer
xref:System.Windows.Forms.ToolStrip.RenderMode%2A
ToolStrip Control Overview
ToolStrip Control Architecture
ToolStrip Technology Summary