.NET WinForms HTML Editor Control

A drop-in HTML editor for WinForms apps - one NuGet install, clean XHTML, Word paste that survives, source code if you need it. In production since 2007, ready for .NET 10.

Download free trial

C# and VB.NET samples · 14-day evaluation

Book a live demo

Free, 1:1 with a domain expert

Install via NuGet
$ dotnet add package SpiceLogic.HtmlEditor.WinForms PM> Install-Package SpiceLogic.HtmlEditor.WinForms
Works with
.NET Framework: 4.5, 4.7.2, 4.8 .NET: 5, 6, 7, 8, 9, 10 Visual Studio: 2019, 2022, 2026
4.7Kdownloads on NuGet Since 2007in production Official MCP serveryour assistant writes the real API Perpetual licensepay once · no subscription

An editor your users never have to think about.

It pastes cleanly from Word, produces clean XHTML, and behaves like it belongs in your app.

Quick start

Add a full HTML editor to your WinForms app in minutes.

One paste. Your assistant connects itself to our documentation server, installs the package, and writes the integration against the real API.

Official MCP server

Your assistant reads this control's real signatures and real documentation pages instead of guessing from stale training data, so the first integration it writes actually compiles.

Paste this into Claude Code, Cursor, or Copilot in agent mode
First connect yourself to the SpiceLogic documentation server so you work from the real API instead of memory. In Visual Studio with GitHub Copilot, create .mcp.json beside the solution with a servers entry named spicelogic-winforms-editor whose url is https://mcp.spicelogic.com/html-editor/winforms, then use Agent mode and enable the SpiceLogic tools. In VS Code or Cursor, create .vscode/mcp.json with an http server named spicelogic-winforms-editor pointing at https://mcp.spicelogic.com/html-editor/winforms and start it. In Claude Code run: claude mcp add --transport http spicelogic-winforms-editor https://mcp.spicelogic.com/html-editor/winforms . Then check that the SpiceLogic tools actually respond. If they do not, tell me to restart the session and stop there rather than writing code from memory.

Once the tools respond, add a WYSIWYG HTML editor to my WinForms app: install the SpiceLogic.HtmlEditor.WinForms NuGet package, place the editor on the main form so it fills the window, seed it with a sample document, wire a Save button that writes the editor's HTML to a file, then build and run it.

The connection is a one-time step and the assistant does it itself. To wire it up by hand instead, see setup for Claude Code, Cursor, Copilot and Claude Desktop.

Or write it yourself: drop the control onto your form, set a property, subscribe to one event.

C#
using SpiceLogic.HtmlEditor.WinForms;

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        winFormHtmlEditor1.BodyHtml = "<p>Hello <strong>World</strong>!</p>";
        winFormHtmlEditor1.HtmlChanged += (s, e) => Console.WriteLine("HTML changed!");
    }
}
The work · 17 capabilities

17 capabilities. Three are shown in full; the rest open in place.

01

Ship a Full HTML Editor Without Building One

Drop the control onto a form and your app gains a complete HTML composition surface: toolbar, WYSIWYG editing, formatted source view, spell checking, tables, images, and dialogs - the plumbing a team otherwise spends weeks building before the first real feature ships.

SpiceLogic has shipped this control since 2007, and the current line is rebuilt for modern .NET - so a maintained WinForms application gets professional HTML editing without turning the editor into a side project.

WinForms form showing the SpiceLogic HTML editor with toolbar, document surface, and source or preview tabs
02

Official MCP Server for AI Coding Assistants

SpiceLogic runs an official Model Context Protocol (MCP) server for this control, and it is not tied to one vendor's assistant. Point whichever tool your team already works in at it and it reads the real method signatures, the real documentation pages, and snippets that compile today, instead of inventing an API from stale training data. It is a remote endpoint over HTTPS, so there is nothing to install on a developer machine and no key to manage.

GitHub Copilot in Visual Studio. In Visual Studio 2026 or Visual Studio 2022 (17.14 or later), save a .mcp.json file beside your solution containing { "servers": { "spicelogic-winforms-editor": { "url": "https://mcp.spicelogic.com/html-editor/winforms" } } }, then switch Copilot Chat to Agent mode and enable the SpiceLogic tools. Commit that file and every developer on the team is connected on their next pull.

GitHub Copilot in VS Code. The same JSON goes in .vscode/mcp.json, with "type": "http" added beside the URL.

Claude Code, OpenAI Codex, Cursor, Claude Desktop. Run claude mcp add --transport http spicelogic-winforms-editor https://mcp.spicelogic.com/html-editor/winforms or codex mcp add spicelogic-winforms-editor --url https://mcp.spicelogic.com/html-editor/winforms; Cursor and Claude Desktop take the same URL.

Read the walkthrough
One prompt pasted into Claude Code beside the live response from the SpiceLogic MCP server, listing the real WinFormHtmlEditor signatures the assistant writes against
03

Paste From Word and Outlook Without the Mess

Your users will paste from Word and Outlook - the only question is what your database receives. The editor detects Office clipboard content and cleans it automatically: no MsoNormal noise in saved templates, email bodies, or support replies, and no special button for users to remember.

Need stricter rules? The Pasting event is a checkpoint where your own policy runs before anything enters the document.

Real Microsoft Word document behind and the WinForms HTML editor in front showing the same content pasted cleanly
The complete index
04 Clean HTML Your Database and Email Can Trust One screen saves a fragment into a SQL column; another sends a complete document by email.

One screen saves a fragment into a SQL column; another sends a complete document by email. BodyHtml returns the inner body markup, DocumentHtml the full document with head and doctype - both clean, both ready to store or send, no DOM scraping.

HTML5 output is the default, with overrides available for older render targets.

Code or property grid showing BodyHtml and DocumentHtml output from the same WinForms editor content
05 Let Users Build Their Own Mail-Merge Templates Templates need fields, not fragile hand-typed tokens.

Templates need fields, not fragile hand-typed tokens. The mail-merge API lets your application define placeholders - customer name, invoice number, renewal date - that users insert at the caret and your code resolves at send time. It turns the editor into a template builder for CRM messages, invoices, and notification emails.

Mail-merge placeholder field inserted at the caret inside a WinForms HTML template editor
06 Take Control of Every Paste Users paste from browsers, spreadsheets, screenshots, and internal tools - and without a policy, saved HTML slowly becomes a support…

Users paste from browsers, spreadsheets, screenshots, and internal tools - and without a policy, saved HTML slowly becomes a support problem. The Pasting event lets your application clean markup, strip tags, reject oversized content, and rewrite links before the paste lands. Your data-quality rules run first, every time.

Code handling the Pasting event before clipboard HTML is inserted into the editor
07 Spell Check Without Deployment Drama Fourteen Hunspell dictionaries are embedded in the control - English (US and GB), German, French, Spanish, Italian, Dutch, Danish, Swedish…

Fourteen Hunspell dictionaries are embedded in the control - English (US and GB), German, French, Spanish, Italian, Dutch, Danish, Swedish, Norwegian, Polish, Czech, and Portuguese (Brazil and Portugal) - so there are no dictionary files to ship. Inline red squiggles, dialog checking, and a per-user custom dictionary work out of the box; any OpenOffice dictionary or your own engine plugs in through ISpellCheckerEngine.

Misspelled word underlined with a red squiggle and spelling suggestions in the WinForms HTML editor
08 Tables Users Can Edit Without Calling Support Most simple editors lose track of a table the moment it exists - users end up deleting and starting over.

Most simple editors lose track of a table the moment it exists - users end up deleting and starting over. The two-way table dialog reads the existing structure and styling back from the document, so rows, columns, borders, and merged cells stay editable forever. TableAuthoringService exposes the same operations to your own code.

Table dialog populated from an existing HTML table inside the WinForms editor
09 Images That Arrive Clean and Never Break the Layout Screenshots in tickets, logos in signatures, product shots in templates - images arrive from files, URLs, and the clipboard.

Screenshots in tickets, logos in signatures, product shots in templates - images arrive from files, URLs, and the clipboard. Oversized pastes are resized automatically with MaxPastedImageWidth, and EmbedLocalImagesAsBase64() turns local references into portable, self-contained HTML when output leaves the machine.

Image Properties dialog in the WinForms HTML editor with source, tooltip, alt text, border, and size fields populated
10 Drive the Whole Editor from Your Own Code Everything the toolbar does, your code can do.

Everything the toolbar does, your code can do. Focused services keep the API discoverable:

  • Content - read, set, transform, and export HTML
  • Formatting and Selection - apply styles and inspect what the user selected
  • StateQuery - drive your own UI state: bold, undoable, inside a table
  • HtmlChanged - dirty flags, save prompts, live previews
  • GetEmailMessageWithLocalImagesEmbedded() - a mail-ready message in one call
C# code using Content, Formatting, Selection, StateQuery, and HtmlChanged services from the editor API
11 The Editor Never Fights Your App's Shortcuts In a real application Ctrl+S, Ctrl+F, and Ctrl+P already mean something.

In a real application Ctrl+S, Ctrl+F, and Ctrl+P already mean something. KeyBindingsManager binds, remaps, or disables any editor action by EditorActionId, so familiar editing shortcuts stay where users expect them - and your application's global commands win whenever they should.

Code showing KeyBindingsManager remapping editor shortcuts in a WinForms application
12 Make the Toolbar Belong to Your App Use the built-in toolbar as shipped, hide commands a role should not see, or add your own buttons beside the standard ones.

Use the built-in toolbar as shipped, hide commands a role should not see, or add your own buttons beside the standard ones. ToolbarItemOverrider intercepts built-in actions and StateQuery keeps custom UI in sync, so the editor follows your product's rules instead of imposing its own.

WinForms editor toolbar extended with a custom Insert signature button added through the toolbar customization API
Read the walkthrough
13 Every Dialog Can Carry Your Brand The image, hyperlink, table, search, symbol, video, and spell-check dialogs all ship with source code and replacement interfaces -…

The image, hyperlink, table, search, symbol, video, and spell-check dialogs all ship with source code and replacement interfaces - IImageDialog, ITableDialog, and the rest. Restyle them, wire them to your asset library, or swap in your own forms; right-click menus are yours too via EditorContextMenuStrip.

Custom Contoso-branded asset library dialog with a searchable thumbnail grid replacing the standard image dialog in the WinForms HTML editor
Read the walkthrough
14 Feels Native in Your Customers' Language Toolbar, tooltips, dialogs, and context menus ship localized in German, French, Spanish, Italian, Dutch, Portuguese, Polish, Czech…

Toolbar, tooltips, dialogs, and context menus ship localized in German, French, Spanish, Italian, Dutch, Portuguese, Polish, Czech, Swedish, Danish, and Norwegian - one Language property switches everything. Spell-check language is configured separately, because the application shell and the authored content do not always match.

The WinForms HTML editor toolbar and dialogs shown in a non-English language such as German or French
15 Rich Styling Without Teaching Anyone CSS The visual style builder gives users dialog-driven control over fonts, colors, borders, backgrounds, and spacing - more power than plain…

The visual style builder gives users dialog-driven control over fonts, colors, borders, backgrounds, and spacing - more power than plain rich text, with no raw markup in sight. Your own styling pages can sit beside the built-in ones through IEditorStylePage.

Visual style builder dialog for fonts, colors, borders, background, and spacing in the editor
16 Compose Visually, Inspect the Real HTML Writers stay in WYSIWYG; developers and power users switch to a formatted, indented source view or a read-only preview of the same document.

Writers stay in WYSIWYG; developers and power users switch to a formatted, indented source view or a read-only preview of the same document. What you save is markup you can actually read - which matters once content lives in templates, tickets, and mail pipelines.

Two hosted views of the same document - formatted HTML source behind and the WYSIWYG editor in front
17 Need it for WPF? Building on WPF instead?

Building on WPF instead? A separate WPF HTML Editor Control exists with its own landing page, documentation, and licensing. Pick the control that matches your UI stack, then test the trial in the application you actually ship.

Try all 17 capabilities in the free trial.

Compatibility

Supported environments.

.NET Framework

4.5, 4.7.2, 4.8

.NET

5, 6, 7, 8, 9, 10

Visual Studio

2019, 2022, 2026

Terms that have become rare.

01

Your users' data never leaves their machine.

The control runs entirely inside your application. Nothing it edits ever touches our servers - there is no cloud dependency to disclose in your compliance review.

02

You buy it once. It is yours.

A true perpetual license, sold this way since 2007. No subscription meter running while you finish the work.

03

One-to-one support from a human domain expert.

Not a chatbot, not a call center. Support is a live conversation with the engineers who build the software. One call away, on Zoom or Teams, free.

From developers who shipped with it.

We were looking for an HTML editor control to replace a very buggy control purchased from another well know company. This control had none of the issues we encountered with that Control. Also to our surprise, many of our wish list features and workarounds we did with that Control, did exist in the SpiceLogic control. Excellent Product and Superb Support. Thumbs up.
Mahmoud Moukalled Mahmoud Moukalled Senior Staff Software Engineer, Nikon Precision Inc. Verified via LinkedIn

Integrating this week? Talk to the engineers who build it.

Every trial and every license includes free live 1:1 sessions on Zoom or Teams. You will talk to a real human, a domain expert who builds this software, and we will help you wire it into your app. No chatbot, no call center, no ticket queue.

Weigh it yourself. The evaluation build is the full control, in your solution, today.

Download free trial

C# and VB.NET samples · 14-day evaluation

Book a live demo

Free, 1:1 with our engineers