* 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
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 |
|
|
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
-
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 Classpublic 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();