Getting started

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

    The HTML Editor gives your desktop application a visual editing surface for formatted text, images and tables, with HTML available for storage or export. Start by installing the WinForms NuGet package, then add the control and load your first document.

    The SpiceLogic WinForms HTML Editor hosted inside a Windows Forms application, showing a formatted customer update with the full two-row toolbar and the editor footer.
    The SpiceLogic WinForms HTML Editor hosted inside a Windows Forms application, showing a formatted customer update with the full two-row toolbar and the editor footer.

    Supported target frameworks

    The package multi-targets the following frameworks, so a single PackageReference works whether you are on classic .NET Framework or modern .NET:

    net10.0-windows, net9.0-windows, net8.0-windows, net7.0-windows, net6.0-windows, net5.0-windows, net48, net472, net45.

    Your host project must be a Windows Forms application (an SDK-style project with UseWindowsForms set to true, or a classic .NET Framework WinForms project). NuGet will automatically resolve the right asset folder for the target framework you build against, so there is no per-framework DLL to copy or reference by hand.

    Visual Studio NuGet Package Manager Browse tab showing a live search for the SpiceLogic.HtmlEditor.WinForms package with its description, download count, and available versions.
    Visual Studio NuGet Package Manager Browse tab showing a live search for the SpiceLogic.HtmlEditor.WinForms package with its description, download count, and available versions.

    Install via NuGet

    From a terminal in your project directory, run:

    dotnet add package SpiceLogic.HtmlEditor.WinForms

    Or, if you prefer to edit the project file directly, add this PackageReference inside an ItemGroup in your .csproj:

    <ItemGroup>
    
      <PackageReference Include="SpiceLogic.HtmlEditor.WinForms" Version="*" />
    
    </ItemGroup>

    Pin Version to a specific number (for example 9.0.14) for reproducible builds, or leave it floating with * while you are evaluating the trial. The package pulls in every dependency the control needs at design time and at runtime; you do not need to add any other references.

    After the package has restored, reopen any Windows Form in the designer. The WinFormHtmlEditor control appears in the Visual Studio toolbox automatically - you do not need to use Tools > Choose Toolbox Items, and you do not need to point the toolbox at a per-framework subfolder. Drag it onto the form, then resize, dock, or anchor it the way you would any other WinForms control.

    Running the minimal SpiceLogic WinForms HTML Editor demo showing BodyHtml content rendered at runtime with the default customizable toolbar visible.
    Running the minimal SpiceLogic WinForms HTML Editor demo showing BodyHtml content rendered at runtime with the default customizable toolbar visible.

    Minimal usage

    Here is a self-contained example. It creates a form, drops a WinFormHtmlEditor on it, sets initial content via the BodyHtml property, and subscribes to the HtmlChanged event so you can react each time the user edits the document:

    using System;
    using System.Windows.Forms;
    using SpiceLogic.HtmlEditor.WinForms;
    
    public class MainForm : Form
    {
        private readonly WinFormHtmlEditor _editor = new WinFormHtmlEditor();
        public MainForm()
        {
            Text = "HTML Editor Demo";
            Width = 900;
            Height = 600;
            _editor.Dock = DockStyle.Fill;
            _editor.BodyHtml = "<p>Hello from <b>SpiceLogic</b>!</p>";
            _editor.HtmlChanged += OnHtmlChanged;
            Controls.Add(_editor);
        }
    
        private void OnHtmlChanged(object sender, EventArgs e)
        {
            // _editor.BodyHtml returns the current body HTML on demand.
            Console.WriteLine(_editor.BodyHtml);
        }
    
        [STAThread]
        public static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new MainForm());
        }
    }
    Imports System
    Imports System.Windows.Forms
    Imports SpiceLogic.HtmlEditor.WinForms
    
    Public Class MainForm
        Inherits Form
        Private ReadOnly _editor As WinFormHtmlEditor = New WinFormHtmlEditor()
        Public Sub New()
            Text = "HTML Editor Demo"
            Width = 900
            Height = 600
            _editor.Dock = DockStyle.Fill
            _editor.BodyHtml = "<p>Hello from <b>SpiceLogic</b>!</p>"
            AddHandler _editor.HtmlChanged, AddressOf OnHtmlChanged
            Controls.Add(_editor)
        End Sub
    
        Private Sub OnHtmlChanged(sender As Object, e As EventArgs)
            ' _editor.BodyHtml returns the current body HTML on demand.
            Console.WriteLine(_editor.BodyHtml)
        End Sub
    
        <STAThread>
        Public Shared Sub Main()
            Application.EnableVisualStyles()
            Application.Run(New MainForm())
        End Sub
    End Class
    

    That is the entire surface you need to get a working editor on screen. Out of the box the package runs in trial mode, which is fine for evaluation; see the How to License the WinForms HTML Editor page when you are ready to ship.

    Next steps

    The SpiceLogic WinForms HTML Editor with its in-place spell checker running: misspelled words are underlined with a red squiggle as you type, alongside the full customizable toolbar.
    • Getting and Setting HTML Value - how to load, read, and round-trip document content through BodyHtml, DocumentHtml, header styles, and the change-notification events.
    • Toolbar Customization - how to show, hide, reorder, or override the click behavior of built-in toolbar buttons, and how to add your own.
    • Spell Checker - how to configure the in-place spell checker, switch dictionary engines, and supply your own .dic / .aff files.

    Each of those is a separate page in this documentation set.

    Ask your AI to do this

    Connect the SpiceLogic MCP server, then give your coding assistant this prompt.

    I use the SpiceLogic WinForms HTML Editor. Help me install the correct NuGet package and host the editor with a starter document. Confirm the exact API names, types and defaults with the SpiceLogic MCP documentation, then show the changes for my project.

    Last updated on Oct 10, 2026

    Put this into practice.

    Clone the C# and VB.NET sample projects from GitHub. Start with Quickstart, then explore the feature samples.

    Prefer a guided look? Book a free live demo with our engineers - live on Zoom or Teams, never a chatbot.