# Replace TextControl: Using ServerTextControl for Non-UI Background Tasks

> ServerTextControl inherits from System.ComponentModel.Component instead of a Forms control, enabling non-UI background document processing. It provides better performance, multi-threading support, and a smaller memory footprint by skipping undo history and image rendering.

- **Author:** Bjoern Meyer
- **Published:** 2014-05-26
- **Modified:** 2026-03-05
- **Description:** ServerTextControl inherits from System.ComponentModel.Component instead of a Forms control, enabling non-UI background document processing. It provides better performance, multi-threading support, and a smaller memory footprint by skipping undo history and image rendering.
- **2 min read** (353 words)
- **Tags:**
  - Tutorial
- **LLMs.txt URL:** https://www.textcontrol.com/blog/2014/05/26/replace-textcontrol-using-servertextcontrol-for-non-ui-background-tasks/llms.txt
- **LLMs-full.txt URL:** https://www.textcontrol.com/blog/2014/05/26/replace-textcontrol-using-servertextcontrol-for-non-ui-background-tasks/llms-full.txt
- **Canonical URL:** https://www.textcontrol.com/blog/2014/05/26/replace-textcontrol-using-servertextcontrol-for-non-ui-background-tasks/

---

The class [TXTextControl.TextControl](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.textcontrol.class.htm) is inherited from [System.Windows.Forms.Control](http://msdn.microsoft.com/en-US/library/system.windows.forms.control%28v=vs.110%29.aspx) and must be visible on a form. But often, there are tasks where no UI is required. For example, if a document is pre-merged with data in the background and visible to the end-user when this process is done.

For this purpose, TX Text Control provides the non-UI class [TXTextControl.ServerTextControl](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.servertextcontrol.class.htm) that is inherited from [System.ComponentModel.Component](http://msdn.microsoft.com/en-us/library/system.componentmodel.component%28v=vs.110%29.aspx). *ServerTextControl* can be used for all processes in the background where no UI is required. If you need to prepare a document programmatically before it is displayed to the end-user, you can use an instance of *TXTextControl.ServerTextControl* to create the document with the same API just like with the Windows Forms control *TXTextControl.TextControl*.

There are several advantages of *ServerTextControl* such as:

- Better performance
- Multi-threading support
- Non-UI (must not be visible on a form)
- Smaller memory footprint (no history for undo/redo, no image rendering)

In order to use the *ServerTextControl*, you'll need to add a reference to the *TXTextControl.Server.dll* and an entry in the licenses.licx file:

```
TXTextControl.ServerTextControl, TXTextControl.Server, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638
```

The following code shows how to create an instance of *ServerTextControl*. An *using* statement is recommended as the object must be disposed explicitly.

```
using (TXTextControl.ServerTextControl serverTextControl1
= new TXTextControl.ServerTextControl())
{
serverTextControl1.Create();
...
}
```

The **Text Control Reporting** engine [MailMerge](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.documentserver.mailmerge.class.htm) can be also connected to a non-UI *ServerTextControl* to create reports in the background in multi-threaded environments.

The latest version X10 (20.0) supports the usage of this component with the client-license of TX Text Control. Try it yourself and give your background processes a boost:

[Download a fully featured, 30 day trial version ](https://www.textcontrol.com/product/ "Fully Featured, 30 Day Trial Versions")

---

## 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

- [Windows Forms Tutorial: Create Your First Windows Forms C# Application](https://www.textcontrol.com/blog/2024/08/26/windows-forms-tutorial-create-your-first-windows-forms-csharp-application/llms.txt)
- [How to Mail Merge MS Word DOCX Documents in ASP.NET Core C#](https://www.textcontrol.com/blog/2023/10/16/how-to-mail-merge-ms-word-docx-documents-in-aspnet-core-csharp/llms.txt)
- [Creating an Angular Document Editor Application with a Node.js WebSocket Server](https://www.textcontrol.com/blog/2023/08/24/creating-an-angular-document-editor-application-with-a-nodejs-websocket-server/llms.txt)
- [Adding SVG Watermarks to Documents](https://www.textcontrol.com/blog/2022/01/28/adding-svg-watermarks-to-documents/llms.txt)
- [Using MailMerge in ASP.NET Core 6 Web Applications](https://www.textcontrol.com/blog/2022/01/27/using-mailmerge-in-aspnet-core-6-web-applications/llms.txt)
- [DocumentViewer for React Prerelease](https://www.textcontrol.com/blog/2020/10/27/document-viewer-for-react-prerelease/llms.txt)
- [New DocumentViewer Signature Tutorial Sample](https://www.textcontrol.com/blog/2020/08/18/new-documentviewer-signature-tutorial-sample/llms.txt)
- [Creating an ASP.NET MVC DocumentViewer Application With Razor](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-mvc-documentviewer-application-with-razor/llms.txt)
- [Creating Your First Windows Forms Application with C#](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-windows-forms-application-with-csharp/llms.txt)
- [Creating Your First WPF Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-wpf-application/llms.txt)
- [Creating a WPF Ribbon Application](https://www.textcontrol.com/blog/2020/01/01/creating-a-wpf-ribbon-application/llms.txt)
- [Integrate Document Editing into any HTML Client using the HTML Widget](https://www.textcontrol.com/blog/2020/01/01/integrate-document-editing/llms.txt)
- [Creating an ASP.NET MVC Application With Razor](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-mvc-application-with-razor/llms.txt)
- [Creating A Windows Forms Ribbon Application](https://www.textcontrol.com/blog/2020/01/01/creating-a-windows-forms-ribbon-application/llms.txt)
- [Creating Your First ASP.NET Reporting Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-aspnet-reporting-application/llms.txt)
- [Creating an ASP.NET Web Forms AJAX Application](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-web-forms-ajax-application/llms.txt)
- [Creating a WebSocket Server Project with Node.js](https://www.textcontrol.com/blog/2020/01/01/creating-a-websocket-server-project-with-nodejs/llms.txt)
- [Creating an Angular Document Editor Application](https://www.textcontrol.com/blog/2020/01/01/creating-an-angular-document-editor-application/llms.txt)
- [ReportingCloud .NET Core Quickstart Tutorial](https://www.textcontrol.com/blog/2019/07/24/reportingcloud-dotnet-core-quickstart-tutorial/llms.txt)
- [Document Permissions and Password Encryption](https://www.textcontrol.com/blog/2019/07/05/document-permissions-and-password-encryption/llms.txt)
- [New Online Sample: Build your First Report](https://www.textcontrol.com/blog/2019/07/03/build-your-first-report/llms.txt)
- [Create your First Document with ReportingCloud](https://www.textcontrol.com/blog/2019/02/19/create-your-first-document-with-reportingcloud/llms.txt)
- [MailMerge: Starting Each Merge Block on a New Page](https://www.textcontrol.com/blog/2016/09/09/mailmerge-starting-each-merge-block-on-a-new-page/llms.txt)
- [Windows Forms and WPF: End a List on Return when Line is Empty](https://www.textcontrol.com/blog/2016/08/26/windows-forms-and-wpf-end-a-list-on-return-when-line-is-empty/llms.txt)
- [Using IFormattedText Objects to Access Elements Across All TextParts in a Document](https://www.textcontrol.com/blog/2016/08/25/using-iformattedtext-objects-to-access-elements-across-all-textparts-in-a-document/llms.txt)
