# Removing TextFields Completely when the User Removes Their Text

> Deleting text inside a TX Text Control TextField removes only the visible characters while leaving the field anchored at its original input position. Handling the TextFieldChanged event lets developers detect when a field becomes empty and call TextFields.Remove to delete it.

- **Author:** Bjoern Meyer
- **Published:** 2010-07-26
- **Modified:** 2026-07-17
- **Description:** Deleting text inside a TX Text Control TextField removes only the visible characters while leaving the field anchored at its original input position. Handling the TextFieldChanged event lets developers detect when a field becomes empty and call TextFields.Remove to delete it.
- **2 min read** (275 words)
- **Tags:**
  - Sample
- **Web URL:** https://www.textcontrol.com/blog/2010/07/26/removing-textfields-completely-when-the-user-removes-their-text/
- **LLMs URL:** https://www.textcontrol.com/blog/2010/07/26/removing-textfields-completely-when-the-user-removes-their-text/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2010/07/26/removing-textfields-completely-when-the-user-removes-their-text/llms-full.txt

---

A TextField consists of text and additional data and can be handled like normal text. But there is an important difference: If you select a TextField and press *{DELETE}*, only the text is removed and the TextField is still active. In fact, the TextField is anchored to an input position, such as formatting information.

An analogy: Open a new document within the shipped sample TX Words and click the *bold* button in the button bar. Type some characters like "Hello World!". Then select the words completely and remove the text by pressing the *{DELETE}* key. The text is removed. If you now start typing, the text is still bold.

The same is valid for the TextField. The field still exists at the input position before the first character of the field's text.

That implies that TX Text Control should not remove the field automatically. But word processing end-user applications like MS Word, help users to do their job easily. And you can assume, that in most cases, it is the user's intention to remove the field in such scenarios.

It has been always our philosophy to keep the API as flexible as possible, so that such requirements can be easily implemented. A very easy way to detect that the field's text has been removed is to trap the *[TextControl.TextFieldChanged](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.textcontrol.textfieldchanged.event.htm)* event.

```
// [C#]
private bool bDeleteFields = true;

private void textControl1_TextFieldChanged(object sender,
    TXTextControl.TextFieldEventArgs e)
{
    if (bDeleteFields == false)
        return;

    if (e.TextField.Text == "")
        textControl1.TextFields.Remove(e.TextField);
}
```

In the event, the TextField will be removed completely, if the field's text is empty.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Create a Table of Contents in Windows Forms using C#](https://www.textcontrol.com/blog/2023/01/23/create-toc-in-windows-forms/llms.txt)
- [Official TX Text Control .NET Sample Applications Are Now Hosted on GitHub](https://www.textcontrol.com/blog/2023/01/08/official-tx-text-control-net-sample-applications-are-now-hosted-on-github/llms.txt)
- [Detect Toggle Button Changes Using a MutationObserver](https://www.textcontrol.com/blog/2021/11/11/detect-toggle-button-changes-using-a-mutationobserver/llms.txt)
- [Two Ways to Restart Numbered Lists in TX Text Control](https://www.textcontrol.com/blog/2021/11/03/two-ways-to-restart-numbered-lists/llms.txt)
- [Zoom Tricks: Disabling CTRL + MOUSE WHEEL and More](https://www.textcontrol.com/blog/2020/12/09/zoom-tricks-disabling-ctrl-mouse-wheel-and-more/llms.txt)
- [AutoCorrect Using TX Text Control and TX Spell .NET](https://www.textcontrol.com/blog/2017/08/17/autocorrect-using-tx-text-control-and-tx-spell-net/llms.txt)
- [Creating Conference Badges with Text Control Reporting](https://www.textcontrol.com/blog/2017/02/14/creating-conference-badges-with-text-control-reporting/llms.txt)
- [Using Custom Document Properties to Store Additional Document Information](https://www.textcontrol.com/blog/2017/02/09/using-custom-document-properties-to-store-additional-document-information/llms.txt)
- [Use SubTextParts to Protect Document Parts](https://www.textcontrol.com/blog/2015/12/29/use-subtextparts-to-protect-document-parts/llms.txt)
- [Reporting: Styling the DocumentViewer for ASP.NET](https://www.textcontrol.com/blog/2015/06/14/reporting-styling-the-documentviewer-for-aspnet/llms.txt)
- [Reporting: Merging MS Word Documents with DocVariables](https://www.textcontrol.com/blog/2015/06/10/reporting-merging-ms-word-documents-with-docvariables/llms.txt)
- [TextControl.Web: Determine when a Document Has Been Completely Loaded](https://www.textcontrol.com/blog/2015/06/09/textcontrolweb-determine-when-a-document-has-been-completely-loaded/llms.txt)
- [TextControl.Web: Adding Custom Ribbon Tabs](https://www.textcontrol.com/blog/2015/05/29/textcontrolweb-adding-custom-ribbon-tabs/llms.txt)
- [Building a Touch-enabled Button Bar with Javascript](https://www.textcontrol.com/blog/2015/05/27/building-a-touch-enabled-button-bar-with-javascript/llms.txt)
- [TextControl.Web: Inserting Merge Fields Using Javascript](https://www.textcontrol.com/blog/2015/05/16/textcontrolweb-inserting-merge-fields-using-javascript/llms.txt)
- [MailMerge: Merge Hyperlinks into Merge Fields](https://www.textcontrol.com/blog/2015/05/15/mailmerge-merge-hyperlinks-into-merge-fields/llms.txt)
- [Mail Merge: Suppress Lines with Empty Merge Fields](https://www.textcontrol.com/blog/2014/08/01/mail-merge-suppress-lines-with-empty-merge-fields/llms.txt)
- [Interactive Spelling Suggestions Using TX Spell .NET](https://www.textcontrol.com/blog/2014/07/30/interactive-spelling-suggestions-using-tx-spell-net/llms.txt)
- [Alternate Row Colors Using NEXT Fields](https://www.textcontrol.com/blog/2013/12/30/alternate-row-colors-using-next-fields/llms.txt)
- [Loading Dictionaries Dynamically in TX Spell .NET](https://www.textcontrol.com/blog/2013/12/20/loading-dictionaries-dynamically-in-tx-spell-net/llms.txt)
- [Restart the Page Numbering Fields Per Section](https://www.textcontrol.com/blog/2013/11/08/restart-the-page-numbering-fields-per-section/llms.txt)
- [TX Barcode .NET: Test the Barcode Engine Live!](https://www.textcontrol.com/blog/2013/07/10/tx-barcode-net-test-the-barcode-engine-live/llms.txt)
- [SD Times .NET Component Buyers Guide 2013: Simplify Report Creation](https://www.textcontrol.com/blog/2013/06/06/sd-times-net-component-buyers-guide-2013-simplify-report-creation/llms.txt)
- [Inserting MS Word Compatible Page Number Fields](https://www.textcontrol.com/blog/2013/05/30/inserting-ms-word-compatible-page-number-fields/llms.txt)
- [MailMerge: Creating Shipping Labels Using TX Text Control](https://www.textcontrol.com/blog/2012/11/23/mailmerge-creating-shipping-labels-using-tx-text-control/llms.txt)
