# What's New in TX Spell .NET for Windows Forms 6.0

> TX Spell .NET for Windows Forms 6.0: SpellingCorrectionUIProvider and its handlers for data-bound correction UIs, cancelable word changes, service packs.

- **Product:** TX Spell .NET for Windows Forms
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Spell .NET for Windows Forms > What's New > Older Versions > What's New in TX Spell .NET for Windows Forms 6.0
- **3269 words**
- **Web URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0600/
- **LLMs URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0600/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0600/llms-full.txt

---

Version 6.0 of TX Spell .NET for Windows Forms lets you build a spelling correction user interface of your own without handling a single event: the new `SpellingCorrectionUIProvider` runs the correction and your controls bind to its values. The change events of the spell check dialog and the context menu can also be canceled from this version on.

Version 6.0 was released on April 15, 2015, together with TX Text Control X12 (version 22.0), as the blog article [TX Text Control X12 and TX Spell 6.0 Released](https://www.textcontrol.com/blog/2015/04/15/tx-text-control-x12-and-tx-spell-60-released/) announced. It stayed the current version until [Version 7.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/0700/llms-full.txt) in December 2017. The features below are the ones added since [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0500/llms-full.txt).

### Version 6.0 at a Glance

| Area | What is new |
|---|---|
| Correction user interfaces | [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/llms-full.txt) with five handlers for the correction, the suggestions, the suggestion dictionaries, the preview and the state |
| Events | A `Cancel` property for the events that change an incorrect or misspelled word |
| Service packs | Service Pack 1 in February 2017 and Service Pack 2 in June 2017 |

### SpellingCorrectionUIProvider

Before version 6.0, a correction user interface of your own had to follow the spell checker through its events. The `SpellingCorrectionUIProvider` keeps the whole workflow instead: it knows the word to correct, creates its suggestions and decides which commands are possible at the moment. Its objects report every change, so a list box, a text box or a button bound to them updates by itself. `TXSpellChecker` and `TXSpell` return the provider in their [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/spellingcorrectionuiprovider-property/llms-full.txt) property.

The provider divides the work among five nested classes, each returned by a property whose name ends in *-Handling* or *-Managing*:

- **CorrectionHandler.** The commands of a correction: [Change](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/change-method/llms-full.txt), `ChangeAll`, `Delete`, `Ignore`, `IgnoreAll` and [AddToDictionary](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/addtodictionary-method/llms-full.txt), which adds the word to the editable user dictionaries of its language. A property such as [IsChangeEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/ischangeenabled-property/llms-full.txt) tells whether a command is possible, so a button can bind its `Enabled` state to it. [CheckCorrectedWord](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/checkcorrectedword-method/llms-full.txt) tells whether a word typed by the user is in the selected suggestion dictionaries.
- **SuggestionsHandler.** [Suggestions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/suggestions-property/llms-full.txt) holds the suggestions for the current word, created from the selected suggestion dictionaries. `MaxSuggestions` limits their number, and `IsNoSuggestionsItemEnabled` adds a message to the list when there are none.
- **SuggestionDictionariesHandler.** [SuggestionDictionaries](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/suggestiondictionaries-property/llms-full.txt) holds the dictionaries of the current word's language, and `SelectedSuggestionDictionaries` the ones the suggestions come from.
- **PreviewHandler.** [PreviewSentenceBounds](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-previewhandler/previewsentencebounds-property/llms-full.txt) returns the start and the length of the sentence that contains the current word, for a preview of that sentence.
- **StateManager.** [SetCurrent](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/setcurrent-method/llms-full.txt) connects a `TextControl` or a text, and `Cancel` returns the provider to its initial state. [Mode](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/mode-property/llms-full.txt) returns the state of the correction, and properties such as `CurrentWordToCorrect` and `CurrentTextControl` return what is being corrected.

[Spelling Correction Modes and UI Provider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/spell-checking/correction-modes/llms-full.txt) explains the modes and builds a data-bound correction panel with the provider.

### Cancel a Change

When the user changes an incorrect or misspelled word in the spell check dialog or the context menu, the spell checker raises `IncorrectWordChanging` for a text or `MisspelledWordChanging` for a `TextControl`. From version 6.0 on, [IncorrectWordChangingEventArgs.Cancel](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/incorrectwordchangingeventargs/cancel-property/llms-full.txt) and [MisspelledWordChangingEventArgs.Cancel](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/misspelledwordchangingeventargs/cancel-property/llms-full.txt) stop that change when an event handler sets them to `true`. [Events](https://docs.textcontrol.com/tx-spell-dotnet-winforms/spell-checking/events/#apply-or-cancel-a-change) shows both events.

### Service Packs

| Service pack | Released | Setup |
|---|---|---|
| Service Pack 1 | February 1, 2017 | *TX Spell .NET for Windows Forms 6.0 SP1.exe* |
| Service Pack 2 | June 14, 2017 | *TX Spell .NET for Windows Forms 6.0 SP2.exe* |

Both service packs were released together with the service packs of TX Text Control X14, and the blog articles [Service Pack 1 for TX Text Control X14 and TX Spell .NET 6.0 Released](https://www.textcontrol.com/blog/2017/02/01/service-pack-1-for-tx-text-control-x14-and-tx-spell-net-60-released/) and [Service Pack 2 for TX Text Control X14 and TX Spell .NET 6.0 Released](https://www.textcontrol.com/blog/2017/06/14/service-pack-2-for-tx-text-control-x14-and-tx-spell-net-60-released/) announced them. The service pack setups of the download package are dated November 23, 2016, and June 12, 2017, some time before the announcements. The full installer of version 6.0, *TX Spell .NET for Windows Forms 6.0.exe*, carries the date of Service Pack 2.

### New Classes, Properties, Methods and Events

These are the classes and members that the What's New documentation of version 6.0 lists. All names are relative to the `TXTextControl.Proofing` namespace, and each links to its current reference page.

#### New Classes

- [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/llms-full.txt)
- [SpellingCorrectionUIProvider.CorrectionHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/llms-full.txt)
- [SpellingCorrectionUIProvider.PreviewHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-previewhandler/llms-full.txt)
- [SpellingCorrectionUIProvider.StateManager](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/llms-full.txt)
- [SpellingCorrectionUIProvider.SuggestionDictionariesHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/llms-full.txt)
- [SpellingCorrectionUIProvider.SuggestionsHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/llms-full.txt)

#### Members by Class

| Class | Properties | Methods | Events |
|---|---|---|---|
| [IncorrectWordChangingEventArgs](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/incorrectwordchangingeventargs/llms-full.txt) | [Cancel](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/incorrectwordchangingeventargs/cancel-property/llms-full.txt) |  |  |
| [MisspelledWordChangingEventArgs](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/misspelledwordchangingeventargs/llms-full.txt) | [Cancel](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/misspelledwordchangingeventargs/cancel-property/llms-full.txt) |  |  |
| [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/llms-full.txt) | [CorrectionHandling](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/correctionhandling-property/llms-full.txt), [PreviewHandling](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/previewhandling-property/llms-full.txt), [StateManaging](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/statemanaging-property/llms-full.txt), [SuggestionDictionariesHandling](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/suggestiondictionarieshandling-property/llms-full.txt), [SuggestionsHandling](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider/suggestionshandling-property/llms-full.txt) |  |  |
| [SpellingCorrectionUIProvider.CorrectionHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/llms-full.txt) | [IsAddToDictionaryEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isaddtodictionaryenabled-property/llms-full.txt), [IsChangeAllEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/ischangeallenabled-property/llms-full.txt), [IsChangeEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/ischangeenabled-property/llms-full.txt), [IsDeleteEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isdeleteenabled-property/llms-full.txt), [IsIgnoreAllEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isignoreallenabled-property/llms-full.txt), [IsIgnoreEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isignoreenabled-property/llms-full.txt), [IsOptionsEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isoptionsenabled-property/llms-full.txt), [IsUndoEditEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/isundoeditenabled-property/llms-full.txt) | [AddToDictionary](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/addtodictionary-method/llms-full.txt), [Change](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/change-method/llms-full.txt), [ChangeAll](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/changeall-method/llms-full.txt), [CheckCorrectedWord](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/checkcorrectedword-method/llms-full.txt), [Delete](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/delete-method/llms-full.txt), [Ignore](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/ignore-method/llms-full.txt), [IgnoreAll](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-correctionhandler/ignoreall-method/llms-full.txt) |  |
| [SpellingCorrectionUIProvider.PreviewHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-previewhandler/llms-full.txt) | [IsPreviewSentenceBoundsEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-previewhandler/ispreviewsentenceboundsenabled-property/llms-full.txt), [PreviewSentenceBounds](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-previewhandler/previewsentencebounds-property/llms-full.txt) |  |  |
| [SpellingCorrectionUIProvider.StateManager](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/llms-full.txt) | [CurrentIFormattedText](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/currentiformattedtext-property/llms-full.txt), [CurrentText](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/currenttext-property/llms-full.txt), [CurrentTextControl](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/currenttextcontrol-property/llms-full.txt), [CurrentWordToCorrect](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/currentwordtocorrect-property/llms-full.txt), [IsOptionsSettings](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/isoptionssettings-property/llms-full.txt), [IsWordToCorrectEditing](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/iswordtocorrectediting-property/llms-full.txt), [Mode](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/mode-property/llms-full.txt) | [Cancel](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/cancel-method/llms-full.txt), [SetCurrent](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-statemanager/setcurrent-method/llms-full.txt) |  |
| [SpellingCorrectionUIProvider.SuggestionDictionariesHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/llms-full.txt) | [IsSuggestionDictionariesEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/issuggestiondictionariesenabled-property/llms-full.txt), [SelectedSuggestionDictionaries](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/selectedsuggestiondictionaries-property/llms-full.txt), [SuggestionDictionaries](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestiondictionarieshandler/suggestiondictionaries-property/llms-full.txt) |  |  |
| [SpellingCorrectionUIProvider.SuggestionsHandler](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/llms-full.txt) | [IsNoSuggestionsItemEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/isnosuggestionsitemenabled-property/llms-full.txt), [IsSuggestionListEnabled](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/issuggestionlistenabled-property/llms-full.txt), [MaxSuggestions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/maxsuggestions-property/llms-full.txt), [Suggestions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/spellingcorrectionuiprovider-suggestionshandler/suggestions-property/llms-full.txt) |  |  |
| [TXSpell](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/llms-full.txt) | [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/spellingcorrectionuiprovider-property/llms-full.txt) |  |  |
| [TXSpellChecker](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/llms-full.txt) | [SpellingCorrectionUIProvider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/spellingcorrectionuiprovider-property/llms-full.txt) |  |  |

### Next Steps

- [Version 7.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/0700/llms-full.txt): the version that followed, with synonyms.
- [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0500/llms-full.txt): the version before, with language detection.
- [Spelling Correction Modes and UI Provider](https://docs.textcontrol.com/tx-spell-dotnet-winforms/spell-checking/correction-modes/llms-full.txt): the provider in today's version.
- [Older Versions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/llms-full.txt): all versions from 3.0 to 6.0.

---

## Nearby

- **Previous:** [Older Versions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/llms-full.txt)
- **Next:** [What's New in TX Spell .NET for Windows Forms 5.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0500/llms-full.txt)
