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

> TX Spell .NET for Windows Forms 4.0: hyphenation lists and GetHyphenationPoints, checking per language, right-to-left dictionaries, LoadDictionaryDelayed.

- **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 4.0
- **2642 words**
- **Web URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0400/
- **LLMs URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0400/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0400/llms-full.txt

---

Hyphenation came to TX Spell .NET for Windows Forms with version 4.0, and with it the ability to work with several languages at once: checking and suggestions for one given language, dictionaries of right-to-left languages, and a dictionary store small and fast enough to keep many dictionaries loaded side by side.

Version 4.0 was released on November 20, 2013, together with TX Text Control X10 (version 20.0), as the blog article [TX Text Control X10, TX Spell 4.0 and TX Barcode 3.0 Have Been Released](https://www.textcontrol.com/blog/2013/11/20/tx-text-control-x10-tx-spell-40-and-tx-barcode-30-have-been-released/) announced. The features below are the ones added since [Version 3.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0300/llms-full.txt); [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0500/llms-full.txt) followed in September 2014.

### Version 4.0 at a Glance

| Area | What is new |
|---|---|
| Hyphenation | Hunspell hyphenation lists, [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/gethyphenationpoint-method/llms-full.txt) and [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/gethyphenationpoints-method/llms-full.txt), the classes [HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt) and [HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt) |
| Languages | Checking and suggestions for a given language, dictionaries of right-to-left languages |
| Dictionaries | Compressed storage in memory, asynchronous loading, [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) |
| Service packs | Service Pack 1 in December 2013, Service Pack 2 in March 2014 and Service Pack 3 in November 2014 |

### Hyphenation

TX Spell .NET 4.0 hyphenates words with the hyphenation lists of the Hunspell project, the same open source project whose dictionaries it uses for spell checking. A [HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt) holds the rules of one language:

- **Two methods.** `GetHyphenationPoint` returns the hyphenation point of a word that comes closest before a given divide position, and `GetHyphenationPoints` returns all hyphenation points of a word.
- **Which list is used.** Without a language, `GetHyphenationPoint` uses the default hyphenation list, the one that [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/hyphenationlanguage-property/llms-full.txt) selects. With a language, both methods take a list of that language from [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/hyphenationlists-property/llms-full.txt) or from the default hyphenation lists folder.
- **Adding lists.** A list is added to `HyphenationLists` with [Add](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/add-method/llms-full.txt), or selected from the default folder by setting `HyphenationLanguage`. [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/availablehyphenationlists-property/llms-full.txt) lists the lists of that folder.
- **Settings per list.** Properties such as [MinCharsAtWordBegin](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordbegin-property/llms-full.txt), [HyphenateCapitalizedWords](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/hyphenatecapitalizedwords-property/llms-full.txt) and [UseOnlyCompoundHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/useonlycompoundhyphenationpoints-property/llms-full.txt) change where a word may be divided.

TX Text Control X10 used the hyphenation lists for its automatic hyphenation at the end of a line. With a `TXSpellChecker` connected and hyphenation switched on, a `TextControl` divides words at line ends, and a `HyphenationLanguage` of **(Auto)** picks the list by the language at the input position. The blog article [Adding Spell Checking and Hyphenation to TX Text Control X10](https://www.textcontrol.com/blog/2013/11/26/adding-spell-checking-and-hyphenation-to-tx-text-control-x10/) walks through that setup. With the release, Text Control also published tested dictionaries and hyphenation lists for many languages, as the article [TX Spell .NET 4.0: New Dictionaries and Hyphenation Lists Available](https://www.textcontrol.com/blog/2013/11/21/tx-spell-net-40-new-dictionaries-and-hyphenation-lists-available/) announced.

The What's New documentation of version 4.0 names a property `TXSpellChecker.Hyphenation` for the default list. No such property exists; the default list is set with `HyphenationLanguage`. It also lists a `Remove` method of `HyphenationListCollection`, which the reference still documents but the assemblies of version 11.0 don't have. [Hyphenation](https://docs.textcontrol.com/tx-spell-dotnet-winforms/hyphenation/llms-full.txt) describes hyphenation as it works today, and [Hyphenation Lists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/hyphenation/lists/llms-full.txt) the lists and their settings.

### Languages

- **Checking in one language.** New overloads of [Check](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/check-method/llms-full.txt) and [CreateSuggestions](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/createsuggestions-method/llms-full.txt) take a language. They check a text, or create suggestions, with all dictionaries of that language. [Multilingual Documents and Language Scopes](https://docs.textcontrol.com/tx-spell-dotnet-winforms/dictionaries/multilingual/llms-full.txt) shows them.
- **Right-to-left languages.** Dictionaries of languages written from right to left, such as Arabic, Farsi, Hebrew and Urdu, are supported. See [Right-to-Left Languages](https://docs.textcontrol.com/tx-spell-dotnet-winforms/dictionaries/right-to-left/llms-full.txt).
- **Dictionaries by the language of the text.** Together with TX Text Control X10, which gave text a language of its own, the spell checker loads the dictionary that matches the language at the input position. The blog article [Loading Dictionaries Dynamically in TX Spell .NET](https://www.textcontrol.com/blog/2013/12/20/loading-dictionaries-dynamically-in-tx-spell-net/) describes this.

### Dictionary Memory and Loading

Checking and hyphenating several languages at once means many dictionaries in memory at the same time. Version 4.0 prepared for that in two ways:

- **Compressed storage.** Loaded dictionaries are kept in memory in a more compact, compressed form, which lowers the memory footprint and leaves room for more dictionaries at once.
- **Asynchronous loading.** Dictionaries are loaded asynchronously, which shortens the initialization of the spell checker.
- **Checking while loading.** With [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) of the `DictionaryCollection` set to `true`, a dictionary is loaded partially when it is added, and text can be checked while the rest is still loading. [Loading and Managing Dictionaries](https://docs.textcontrol.com/tx-spell-dotnet-winforms/dictionaries/managing/#check-while-a-large-dictionary-loads) describes the property and what it costs.

### Service Packs

| Service pack | Released | Setup |
|---|---|---|
| Service Pack 1 | December 17, 2013 | *TX Spell .NET for Windows Forms 4.0 SP1.exe* |
| Service Pack 2 | March 10, 2014 | *TX Spell .NET for Windows Forms 4.0 SP2.exe* |
| Service Pack 3 | November 5, 2014 | *TX Spell .NET for Windows Forms 4.0 SP3.exe* |

The blog articles [Service Packs for TX Text Control X10 and X9 Released](https://www.textcontrol.com/blog/2013/12/17/service-packs-for-tx-text-control-x10-and-x9-released/), [Service Pack 2 for TX Spell .NET 4.0 Released](https://www.textcontrol.com/blog/2014/03/10/service-pack-2-for-tx-spell-net-40-released/) and [Service Pack 1 Released for TX Text Control X11](https://www.textcontrol.com/blog/2014/11/05/service-pack-1-released-for-tx-text-control-x11/) announced them. The setups in the download package are dated December 11, 2013, March 7, 2014, and October 28, 2014, a few days before each announcement. The full installer of version 4.0, *TX Spell .NET for Windows Forms 4.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 4.0 lists, without `HyphenationListCollection.Remove`. All names are relative to the `TXTextControl.Proofing` namespace, and each links to its current reference page.

#### New Classes

- [HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt)
- [HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt)

#### Members by Class

| Class | Properties | Methods | Events |
|---|---|---|---|
| [DictionaryCollection](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/dictionarycollection/llms-full.txt) | [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) |  |  |
| [HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt) | [HyphenateCapitalizedWords](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/hyphenatecapitalizedwords-property/llms-full.txt), [IsSelectedAsDefault](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/isselectedasdefault-property/llms-full.txt), [Language](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/language-property/llms-full.txt), [MinCharsAtWordBegin](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordbegin-property/llms-full.txt), [MinCharsAtWordEnd](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordend-property/llms-full.txt), [MinSyllablesAfterCompoundHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/minsyllablesaftercompoundhyphenationpoint-property/llms-full.txt), [MinSyllablesBeforeCompoundHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/minsyllablesbeforecompoundhyphenationpoint-property/llms-full.txt), [Name](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/name-property/llms-full.txt), [UseOnlyCompoundHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlist/useonlycompoundhyphenationpoints-property/llms-full.txt) |  |  |
| [HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt) | [Item](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/item-method/llms-full.txt) | [Add](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/add-method/llms-full.txt), [GetItem](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/hyphenationlistcollection/getitem-method/llms-full.txt) |  |
| [TXSpell](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/llms-full.txt) | [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/availablehyphenationlists-property/llms-full.txt), [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/hyphenationlanguage-property/llms-full.txt), [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/hyphenationlists-property/llms-full.txt) | [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/gethyphenationpoint-method/llms-full.txt), [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspell/gethyphenationpoints-method/llms-full.txt) |  |
| [TXSpellChecker](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/llms-full.txt) | [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/availablehyphenationlists-property/llms-full.txt), [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/hyphenationlanguage-property/llms-full.txt), [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/hyphenationlists-property/llms-full.txt) | [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/gethyphenationpoint-method/llms-full.txt), [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-winforms/reference/txtextcontrol-proofing/txspellchecker/gethyphenationpoints-method/llms-full.txt) |  |

### Next Steps

- [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0500/llms-full.txt): the version that followed, with language detection.
- [Version 3.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0300/llms-full.txt): the version before, with the new suggestion engine and the spell check dialog.
- [Hyphenation](https://docs.textcontrol.com/tx-spell-dotnet-winforms/hyphenation/llms-full.txt): hyphenation 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:** [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)
- **Next:** [What's New in TX Spell .NET for Windows Forms 3.0](https://docs.textcontrol.com/tx-spell-dotnet-winforms/whats-new/older-versions/0300/llms-full.txt)
