# Document Redlining and Approval Workflows with TX Text Control Track Changes in .NET C#

> This article shows how to implement a document redlining and approval workflow using TX Text Control .NET Server and ASP.NET Core. The document editor can be used to track changes and to accept or reject changes.

- **Author:** Bjoern Meyer
- **Published:** 2024-08-07
- **Modified:** 2025-11-16
- **Description:** This article shows how to implement a document redlining and approval workflow using TX Text Control .NET Server and ASP.NET Core. The document editor can be used to track changes and to accept or reject changes.
- **5 min read** (831 words)
- **Tags:**
  - ASP.NET
  - ASP.NET Core
  - Track Changes
  - Redlining
- **Web URL:** https://www.textcontrol.com/blog/2024/08/07/document-redlining-and-approval-workflows-with-tx-text-control-track-changes-in-net-csharp/
- **LLMs URL:** https://www.textcontrol.com/blog/2024/08/07/document-redlining-and-approval-workflows-with-tx-text-control-track-changes-in-net-csharp/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2024/08/07/document-redlining-and-approval-workflows-with-tx-text-control-track-changes-in-net-csharp/llms-full.txt

---

Document redlining or known as track changes is a feature of TX Text Control that allows users to see changes made to a document. This feature is commonly used in collaborative editing scenarios where multiple users are working on the same document. The changes are displayed in a different color and can be accepted or rejected by the user.

Specifically used in legal and medical documents, this feature is a must-have for applications that require document collaboration. Contracts, agreements, and other legal documents are often reviewed by multiple parties and the track changes feature helps to visualize and to keep track of changes made to the document.

This article shows how to enable the track changes feature in TX Text Control and how to accept or reject changes programmatically and how to use the visual components of TX Text Control to visualize and manage changes.

#### MS Word Compatible

TX Text Control allows you to track changes compatible with MS Word and supports this feature in Office Open XML DOCX, DOC, RTF and other supported formats. Changes made to a document in MS Word or Google Docs are visible and accessible in TX Text Control, so it doesn't matter where the document is being edited - you have full control over the changes made.

The following track change functions are available in TX Text Control:

- Keep track of text additions and deletions
- Define current author (user name) for changes
- Display changes in different colors
- Display changes in a separate pane
- Tracking of change, author and time stamp
- Access, accept or reject changes programmatically
- Filter changes

#### Enable Track Changes

To enable track changes in the visual document editor, the following view code is required to set the current author by setting the username:

```
@using TXTextControl.Web.MVC

@Html.TXTextControl().TextControl(settings =>
        {
            settings.UserNames = new string[] { "Tim Typer" };
            settings.Dock = TXTextControl.Web.DockStyle.Window;
        }).Render()
```

After setting the current author, the track changes feature can be enabled by toggling the *Track Changes* toggle button:

![Track changes with TX Text Control](https://s1-www.textcontrol.com/assets/dist/blog/2024/08/07/b/assets/track1.webp "Track changes with TX Text Control")

Or programmatically by setting the *isTrackChangesEnabled*  property:

```
TXTextControl.isTrackChangesEnabled = true;
```

The changes are displayed in a different color and can be accepted or rejected by the user. The sidebar shows the changes and allows the user to navigate through the changes:

![Track changes with TX Text Control](https://s1-www.textcontrol.com/assets/dist/blog/2024/08/07/b/assets/track2.webp "Track changes with TX Text Control")

Comments can be added to connected tracked changes and can be displayed in the sidebar:

![Track changes with TX Text Control](https://s1-www.textcontrol.com/assets/dist/blog/2024/08/07/b/assets/track3.webp "Track changes with TX Text Control")

#### Document Viewer

The Document Viewer can also be used to load a document that contains tracked changes. They will be visualized and a special mode will be active to navigate through the changes to accept or reject them. This is especially helpful in mobile applications where the full-featured editor is not helpful.

The following code shows how to load a document with tracked changes in the Document Viewer:

```
@using TXTextControl.Web.MVC.DocumentViewer

@Html.TXTextControl().DocumentViewer(settings =>
    {
        settings.DocumentPath = "Data/nda_styled_tracked.tx";
        settings.UserNames = new string[] { "Tim Typer" };
        settings.Dock = DocumentViewerSettings.DockStyle.Window;
    }).Render()
```

After loading the document, the changes are displayed in the Document Viewer:

![Track changes with TX Text Control](https://s1-www.textcontrol.com/assets/dist/blog/2024/08/07/b/assets/track4.webp "Track changes with TX Text Control")

The mobile view of the Document Viewer shows the changes and allows the user to navigate through the changes in a dedicated toolbar:

![Track changes with TX Text Control](https://s1-www.textcontrol.com/assets/dist/blog/2024/08/07/b/assets/track5.webp "Track changes with TX Text Control")

#### Access Changes Programmatically

TX Text Control provides a powerful API to access, accept or reject changes programmatically. The following code shows how to loop through all changes and to display the change type, author and time stamp:

```
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
    tx.Create();
    tx.Load("Data/nda_styled_tracked.tx", TXTextControl.StreamType.InternalUnicodeFormat);

    foreach (TXTextControl.TrackedChange change in tx.TrackedChanges)
    {
        Debug.WriteLine(change.UserName);
        Debug.WriteLine(change.Text);
        Debug.WriteLine(change.ChangeKind);
        Debug.WriteLine(change.ChangeTime);
    }
}
```

To accept or reject a change, the following code can be used:

```
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
    tx.Create();
    tx.Load("Data/nda_styled_tracked.tx", TXTextControl.StreamType.InternalUnicodeFormat);

    TXTextControl.TrackedChange trackedChange = tx.TrackedChanges[0];
    tx.TrackedChanges.Remove(trackedChange, true);
}
```

The *TrackedChangeCollection* provides the Remove method with the *accept* parameter that defines whether the change should be accepted or rejected.

### Conclusion

TX Text Control provides a powerful track changes feature that is compatible with MS Word and other word processing applications. This feature is a must-have for applications that require document collaboration and document redlining. The API provides methods to access, accept or reject changes programmatically.

---

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

- [Building a Modern Track Changes Review Workflow in ASP.NET Core C#](https://www.textcontrol.com/blog/2026/04/28/building-a-modern-track-changes-review-workflow-in-aspnet-core-csharp/llms.txt)
- [Transforming Legal Review with AI and TX Text Control: A Smarter, Faster Approach to Legal Document Processing in .NET C#](https://www.textcontrol.com/blog/2024/11/01/transforming-legal-review-with-ai-and-tx-text-control-a-smarter-faster-approach-to-legal-document-processing/llms.txt)
- [Techorama 2026: Welcome to The Document Forge](https://www.textcontrol.com/blog/2026/05/15/techorama-2026-welcome-to-the-document-forge/llms.txt)
- [Signed CycloneDX SBOMs for CRA Compliance Available for Text Control Products](https://www.textcontrol.com/blog/2026/05/08/signed-cyclonedx-sboms-for-cra-compliance-available-for-text-control-products/llms.txt)
- [Introducing SignFabric: An Open Source, Enterprise-Ready E-Sign Platform Built with TX Text Control](https://www.textcontrol.com/blog/2026/05/06/introducing-signfabric-an-open-source-enterprise-ready-esign-platform-built-with-tx-text-control/llms.txt)
- [TX Text Control vs IronPDF for Enterprise PDF Workflows: Complete Comparison Guide](https://www.textcontrol.com/blog/2026/04/28/tx-text-control-vs-ironpdf-for-enterprise-pdf-workflows-complete-comparison-guide/llms.txt)
- [Document Classification Without AI: Deterministic, Explainable, and Built for Production in C# .NET](https://www.textcontrol.com/blog/2026/04/23/document-classification-without-ai-deterministic-explainable-built-for-production-in-csharp-dot-net/llms.txt)
- [Using QR Codes in PDF Documents in C# .NET](https://www.textcontrol.com/blog/2026/04/21/using-qr-codes-in-pdf-documents-in-csharp-dotnet/llms.txt)
- [Sanitizing Data in Document Pipelines: A Practical Approach with TX Text Control in C# .NET](https://www.textcontrol.com/blog/2026/04/20/sanitizing-data-in-document-pipelines-a-practical-approach-with-tx-text-control-in-csharp-dotnet/llms.txt)
- [One More Stop on Our Conference Circus: code.talks 2026](https://www.textcontrol.com/blog/2026/04/17/one-more-stop-on-our-conference-circus-code-talks-2026/llms.txt)
- [Build Your Own MCP-Powered Document Processing Backend with TX Text Control](https://www.textcontrol.com/blog/2026/04/16/build-your-own-mcp-powered-document-processing-backend-with-tx-text-control/llms.txt)
- [TXTextControl.Markdown.Core 34.1.0-beta: Work with Full Documents, Selection, and SubTextParts](https://www.textcontrol.com/blog/2026/04/14/txtextcontrol-markdown-core-34-1-0-beta-work-with-full-documents-selection-and-subtextparts/llms.txt)
- [5 Layout Patterns for Integrating the TX Text Control Document Editor in ASP.NET Core C#](https://www.textcontrol.com/blog/2026/04/09/5-layout-patterns-for-integrating-the-tx-text-control-document-editor-in-aspnet-core-csharp/llms.txt)
- [Extracting Structured Table Data from DOCX Word Documents in C# .NET with Domain-Aware Table Detection](https://www.textcontrol.com/blog/2026/04/03/extracting-structured-table-data-from-docx-word-documents-in-csharp-dotnet-with-domain-aware-table-detection/llms.txt)
- [Introducing Text Control Agent Skills](https://www.textcontrol.com/blog/2026/03/27/introducing-text-control-agent-skills/llms.txt)
- [Deploying the TX Text Control Document Editor from the Private NuGet Feed to Azure App Services (Linux and Windows)](https://www.textcontrol.com/blog/2026/03/25/deploying-the-tx-text-control-document-editor-from-the-private-nuget-feed-to-azure-app-services-linux-and-windows/llms.txt)
- [Why Structured E-Invoices Still Need Tamper Protection using C# and .NET](https://www.textcontrol.com/blog/2026/03/24/why-structured-e-invoices-still-need-tamper-protection-using-csharp-and-dotnet/llms.txt)
- [AI Generated PDFs, PDF/UA, and Compliance Risk: Why Accessible Document Generation Must Be Built Into the Pipeline in C# .NET](https://www.textcontrol.com/blog/2026/03/23/ai-generated-pdfs-pdf-ua-and-compliance-risk-why-accessible-document-generation-must-be-built-into-the-pipeline-in-c-sharp-dot-net/llms.txt)
- [File Based Document Repository with Version Control in .NET with TX Text Control](https://www.textcontrol.com/blog/2026/03/20/file-based-document-repository-with-version-control-in-dotnet/llms.txt)
- [Create Fillable PDFs from HTML Forms in C# ASP.NET Core Using a WYSIWYG Template](https://www.textcontrol.com/blog/2026/03/17/create-fillable-pdfs-from-html-forms-in-csharp-aspnet-core-using-a-wysiwyg-template/llms.txt)
- [Why HTML to PDF Conversion is Often the Wrong Choice for Business Documents in C# .NET](https://www.textcontrol.com/blog/2026/03/13/why-html-to-pdf-conversion-is-often-the-wrong-choice-for-business-documents-in-csharp-dot-net/llms.txt)
- [Inspect and Process Track Changes in DOCX Documents with TX Text Control with .NET C#](https://www.textcontrol.com/blog/2026/03/10/inspect-and-process-track-changes-in-docx-documents-with-tx-text-control-with-dotnet-csharp/llms.txt)
- [Text Control at BASTA! Spring 2026 in Frankfurt](https://www.textcontrol.com/blog/2026/03/06/text-control-at-basta-spring-2026-in-frankfurt/llms.txt)
- [From Legacy Microsoft Office Automation to a Future-Ready Document Pipeline with C# .NET](https://www.textcontrol.com/blog/2026/03/02/from-legacy-microsoft-office-automation-to-a-future-ready-document-pipeline-with-csharp-dot-net/llms.txt)
- [We are Gold Partner at Techorama Belgium 2026](https://www.textcontrol.com/blog/2026/02/26/we-are-gold-partner-techorama-belgium-2026/llms.txt)
