# What's New in TX Text Control .NET for Windows Forms 32.0

> TX Text Control .NET for Windows Forms 32.0: footnotes with events and ribbon items, SVG images of pages, AddUndoUnit, RemoveFormatting and the [Normal] style.

- **Product:** TX Text Control .NET for Windows Forms
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET for Windows Forms > What's New > What's New in TX Text Control .NET for Windows Forms 32.0
- **3411 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3200/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3200/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3200/llms-full.txt

---

Footnotes are the headline of version 32.0: TX Text Control .NET for Windows Forms inserts, numbers and edits them, in code and in the ribbon. The version also renders document pages as SVG, adds undo steps for headers and footers, and lets you change the \[Normal\] style that all other styles inherit from.

Version 32.0 was released in September 2023, together with TX Text Control .NET Server, TX Text Control .NET for WPF and TX Text Control ActiveX 32.0. The current version is [Version 34.0](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3400/llms-full.txt). The service packs of 32.0, among them Service Pack 2 with its new licensing, are listed on [Service Packs](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/service-packs/#version-32-0).

### Version 32.0 at a Glance

| Area | What is new |
|---|---|
| Footnotes | Footnotes in documents and the API, six events of `TextControl`, ribbon items, a search option and a context menu location |
| Pages | SVG images of document pages |
| Editing | An undo step for headers and footers, removing the formatting of a selection, an editable \[Normal\] style |
| Dialog boxes | Format detection and preselection in the open file and insert image dialog boxes |
| .NET | A package for .NET 5 and higher, for .NET 6 and higher from Service Pack 2 |

### Footnotes

A footnote has two parts: a reference mark in the text and the footnote itself at the bottom of the page, which starts with a footnote mark of the same number. Footnotes are part of the Enterprise edition; see [Editions and Feature Availability](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/overview/editions/llms-full.txt).

- **Content and numbering.** The text of a footnote can use all formatting attributes and contain tables and images. Footnotes are numbered through the whole document, with a start number and a number format, and are renumbered when one is inserted or removed.
- **File formats.** Footnotes are saved in the TX Text Control format, RTF, DOC and DOCX. They can't be inserted in headers, footers or text frames.
- **Classes.** [Footnote](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/llms-full.txt) is one footnote, and [FootnoteCollection](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/llms-full.txt), returned by [TextControl.Footnotes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotes-property/llms-full.txt) and [ServerTextControl.Footnotes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/footnotes-property/llms-full.txt), contains all footnotes of a document. [FootnoteSection](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotesection/llms-full.txt) is the area at the bottom of one page that holds the text of that page's footnotes, and [FootnoteText](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotetext/llms-full.txt) the text of all footnotes of a document. Both implement [IFormattedText](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/iformattedtext/llms-full.txt) and are reached through [TextControl.TextParts](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/textparts-property/llms-full.txt).
- **Events.** `TextControl` raises six footnote events, when a footnote is created or deleted, when the input position enters or leaves a reference mark and when the footnote section of a page gets or loses the input position. `ServerTextControl` raises the first two.

[Footnotes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/document-editor/footnotes/llms-full.txt) shows how to insert, number, find and remove footnotes and how to handle their events. The blog article [Sneak Peek 32.0: Introducing Footnotes](https://www.textcontrol.com/blog/2023/06/23/sneak-peek-320-introducing-footnotes/) shows footnotes with formatted text and tables.

#### Footnotes in the User Interface

- **Ribbon.** The [RibbonReferencesTab](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-windows-forms-ribbon/ribbonreferencestab/llms-full.txt) has a footnotes group with items to insert, delete, edit and navigate footnotes, highlight their marks and set the start number and the number format. Their identifiers are values of [RibbonReferencesTab.RibbonItem](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-windows-forms-ribbon/ribbonreferencestab/ribbonitem-enumeration/llms-full.txt), such as `TXITEM_InsertFootnote`, and of [RibbonDropDownItem](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-windows-forms-ribbon/ribbonreferencestab/ribbondropdownitem-enumeration/llms-full.txt) for the number formats. The ribbon of [Create Your First Windows Forms Application](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/getting-started/document-editor/first-application/llms-full.txt) doesn't contain this tab; add it to offer the items.
- **Find and replace.** The find and replace panel of the [Sidebar](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-windows-forms/sidebar/llms-full.txt) has a check box to search in footnotes, identified by `TXITEM_SearchInFootnotes` of [Sidebar.FindAndReplaceItem](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-windows-forms/sidebar/findandreplaceitem-enumeration/llms-full.txt).
- **Context menu.** The value `Footnote` of [ContextMenuLocation](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/contextmenulocation/enumeration/llms-full.txt) tells a handler of [TextContextMenuOpening](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/textcontextmenuopening-event/llms-full.txt) that the menu opens on a footnote reference mark.

### SVG Images of Pages

Version 32.0 can render a page of a document as Scalable Vector Graphics (SVG), a vector image format.

- **Page.GetImage.** A new overload of [Page.GetImage](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/page/getimage-method/llms-full.txt) returns a page as a string in SVG format. Its first parameter, a [PageContent](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/pagecontent/enumeration/llms-full.txt) value, selects the parts of the page, such as the main text or the headers and footers. In code, the enumeration is written `Page.PageContent`. You get the pages of a document from [GetPages](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/getpages-property/llms-full.txt), which returns pages only when the [ViewMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/viewmode-property/llms-full.txt) of `TextControl` is `PageView`.
- **What the SVG contains.** Characters are stored as outline curves (cubic Bézier splines), coordinates are in twips, and pixel images are embedded as PNG. The second parameter sets the maximum resolution of these images in dpi. An SVG image in the document is embedded unchanged, including its script data. The feature description of version 32.0 also names text with font information as a second way of storing characters, but the reference of the overload describes outline curves only, and the overload has no parameter that selects text output.

The overload is an addition, so existing calls of `GetImage` keep working.

### Other Additions

- **Undo for headers and footers.** Changes that your code makes through the properties and methods of a header or footer aren't added to the undo stack of `TextControl` automatically. [HeaderFooter.AddUndoUnit](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/headerfooter/addundounit-method/llms-full.txt) adds the current state of the header or footer to it. When a user edits the text or its formatting, the call isn't needed. See [Undo and Redo](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/document-editor/editing-text/undo-redo/llms-full.txt).
- **Remove formatting.** [Selection.RemoveFormatting](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/selection/removeformatting-method/llms-full.txt) resets the character formatting of the selected text to its defaults. If nothing or more than one paragraph is selected, it resets the paragraph formatting as well.
- **The \[Normal\] style.** The \[Normal\] style, which all other styles of a document inherit from, can be changed, and the change applies to every style based on it. The style is saved with the document. In Windows Forms, you set it with the `Font` property of `TextControl`, at design time or at run time. The blog article [Sneak Peek 32.0: Modifying the Normal Stylesheet](https://www.textcontrol.com/blog/2023/07/04/sneak-peek-320-modifying-the-normal-stylesheet/) shows it; see also [Stylesheets](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/document-editor/stylesheets/llms-full.txt).
- **File dialog boxes.** The open file and insert image dialog boxes detect the format of a file from its extension and preselect the format opened last when they open again. See [Loading and Saving Documents](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/document-editor/load-save/llms-full.txt).

### .NET

The package `TXTextControl.TextControl.WinForms.SDK` of version 32.0 targeted .NET 5 and higher. Service Pack 2 changed the target to .NET 6 and higher, introduced the license file that replaces *licenses.licx* in .NET projects and restored the full designer support for .NET. Text Control tested version 32.0 with the final release of .NET 8; see the blog article [TX Text Control Supports .NET 8 in Windows Forms and WPF Applications](https://www.textcontrol.com/blog/2024/01/17/tx-text-control-supports-net-8-in-windows-forms-and-wpf-applications/). Since version 33.0, the package requires .NET 8 or higher.

### New Classes and Members

The What's New documentation of version 32.0 lists these classes, properties, methods and events as new in TX Text Control .NET for Windows Forms, grouped by class. Each name leads to its reference page. The list of the documentation also names members of `HeaderFooter` that existed before version 32.0, such as `Distance`, `Images` and `Activate`, and they are left out here. `TextControl.EntryAssembly` and `ServerTextControl.EntryAssembly` came with Service Pack 2.

- [Footnote](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/llms-full.txt) (new class): [DefaultHighlightColor](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/defaulthighlightcolor-property/llms-full.txt), [Edit](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/edit-method/llms-full.txt), [HighlightColor](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/highlightcolor-property/llms-full.txt), [HighlightMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/highlightmode-property/llms-full.txt), [ID](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/id-property/llms-full.txt), [Name](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/name-property/llms-full.txt), [Number](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/number-property/llms-full.txt), [ReferenceMarkLength](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/referencemarklength-property/llms-full.txt), [ReferenceMarkStart](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/referencemarkstart-property/llms-full.txt), [Save](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/save-method/llms-full.txt), [ScrollTo](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/scrollto-method/llms-full.txt), [Text](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnote/text-property/llms-full.txt)
- [FootnoteCollection](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/llms-full.txt) (new class): [Add](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/add-method/llms-full.txt), [CopyTo](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/copyto-method/llms-full.txt), [Count](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/count-property/llms-full.txt), [GetEnumerator](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/getenumerator-method/llms-full.txt), [GetItem](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/getitem-method/llms-full.txt), [HighlightMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/highlightmode-property/llms-full.txt), [Item](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/item-property/llms-full.txt), [NumberFormat](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/numberformat-property/llms-full.txt), [Remove](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/remove-method/llms-full.txt), [StartNumber](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotecollection/startnumber-property/llms-full.txt)
- [FootnoteEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnoteeventargs/llms-full.txt) (new class): [Footnote](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnoteeventargs/footnote-property/llms-full.txt)
- [FootnoteSection](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotesection/llms-full.txt) (new class)
- [FootnoteText](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/footnotetext/llms-full.txt) (new class)
- [HeaderFooter](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/headerfooter/llms-full.txt): [AddUndoUnit](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/headerfooter/addundounit-method/llms-full.txt)
- [Selection](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/selection/llms-full.txt): [RemoveFormatting](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/selection/removeformatting-method/llms-full.txt)
- [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/llms-full.txt): [EntryAssembly](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/entryassembly-property/llms-full.txt), [FootnoteCreated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/footnotecreated-event/llms-full.txt), [FootnoteDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/footnotedeleted-event/llms-full.txt), [Footnotes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/footnotes-property/llms-full.txt), [OnFootnoteCreated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/onfootnotecreated-method/llms-full.txt), [OnFootnoteDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/servertextcontrol/onfootnotedeleted-method/llms-full.txt)
- [TextControl](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/llms-full.txt): [EntryAssembly](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/entryassembly-property/llms-full.txt), [FootnoteCreated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotecreated-event/llms-full.txt), [FootnoteDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotedeleted-event/llms-full.txt), [FootnoteReferenceMarkEntered](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotereferencemarkentered-event/llms-full.txt), [FootnoteReferenceMarkLeft](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotereferencemarkleft-event/llms-full.txt), [Footnotes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotes-property/llms-full.txt), [FootnoteSectionActivated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotesectionactivated-event/llms-full.txt), [FootnoteSectionDeactivated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/footnotesectiondeactivated-event/llms-full.txt), [OnFootnoteCreated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotecreated-method/llms-full.txt), [OnFootnoteDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotedeleted-method/llms-full.txt), [OnFootnoteReferenceMarkEntered](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotereferencemarkentered-method/llms-full.txt), [OnFootnoteReferenceMarkLeft](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotereferencemarkleft-method/llms-full.txt), [OnFootnoteSectionActivated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotesectionactivated-method/llms-full.txt), [OnFootnoteSectionDeactivated](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/onfootnotesectiondeactivated-method/llms-full.txt)

### Upgrade to Version 32.0

- **Update notes.** The update notes of version 32.0 list the new SVG overload of `Page.GetImage`. It doesn't require code changes.
- **Changes to plan for.** Since Service Pack 2, .NET projects use the license file *txtextcontrol.winforms.license* instead of *licenses.licx*, and a class library or user control sets [TextControl.EntryAssembly](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/textcontrol/entryassembly-property/llms-full.txt). [Breaking Changes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/installation/upgrading/breaking-changes/#version-32-0) in the Upgrade Guide describes both.
- **Upgrade steps.** [Upgrading from Previous Versions](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/installation/upgrading/previous-versions/llms-full.txt) covers the move of a project to a new version.

### Next Steps

- [Version 33.0](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3300/llms-full.txt): the features of the next version.
- [Version 31.0](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3100/llms-full.txt): the features of the previous version.
- [Breaking Changes](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/breaking-changes/llms-full.txt): the changes that can require work when you upgrade.
- [TX Text Control 32.0 Has Been Released](https://www.textcontrol.com/blog/2023/09/13/tx-text-control-320-has-been-released/): the release announcement on the Text Control Blog.

---

## Nearby

- **Previous:** [What's New in TX Text Control .NET for Windows Forms 33.0](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3300/llms-full.txt)
- **Next:** [What's New in TX Text Control .NET for Windows Forms 31.0](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/whats-new/3100/llms-full.txt)
