Products Technologies Demo Docs Blog Support Company

Getting the Nearest DocumentTarget at a Specific Location

The TextCharCollection.GetItem method has an implementation that returns the nearest character of a given location. A TX Text Control user requested this for the DocumentTargetCollection as well. A method that returns the nearest DocumentTarget at the current input position. We added this smart request to our list of feature requests. But as always, we try to provide work-arounds for such tasks. TX Text Control's API is very flexible and generally, all calculations are doable based on the…

Getting the Nearest DocumentTarget at a Specific Location

The TextCharCollection.GetItem method has an implementation that returns the nearest character of a given location. A TX Text Control user requested this for the DocumentTargetCollection as well. A method that returns the nearest DocumentTarget at the current input position.

We added this smart request to our list of feature requests. But as always, we try to provide work-arounds for such tasks. TX Text Control's API is very flexible and generally, all calculations are doable based on the available interface.

The following function returns the nearest DocumentTarget for a specific position:

private DocumentTarget GetNearestTarget(int Start)
{
    DocumentTarget nearestTarget = null;

    foreach (DocumentTarget target in textControl1.DocumentTargets)
    {
        if (nearestTarget == null)
        {
            nearestTarget = target;
            continue;
        }

        if (System.Math.Abs((target.Start - Start))
                <= System.Math.Abs((nearestTarget.Start - Start)))
            nearestTarget = target;
    }

    return nearestTarget;
}

The function is pretty straightforward: All targets are iterated and the distance between the input position and the target start position is compared. The target with the shortest distance is returned.

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

Related Posts

Windows FormsWPF.NET

Create a Table of Contents in Windows Forms using C#

This article explains how to create a table of contents in Windows Forms using the ribbon or programmatically. Creating a table of contents is required to organize large documents.


ASP.NETWindows FormsWPF

Official TX Text Control .NET Sample Applications Are Now Hosted on GitHub

This article gives a quick overview of the new repositories, their structure and our plans for the future.


ASP.NETJavaScriptDocument Editor

Detect Toggle Button Changes Using a MutationObserver

This article shows how to detect changes of toggle buttons in the ribbon of the web editor using a MutationObserver. The state of a toggle button in the ribbon visualizes the state of a certain…


Windows FormsList.NET

Two Ways to Restart Numbered Lists in TX Text Control

In TX Text Control, numbered lists are continued by default and need to be reset when required. There is more than one way if you want to restart numbered lists in a document. In this article, two…


Windows FormsSampleShortcuts

Zoom Tricks: Disabling CTRL + MOUSE WHEEL and More

This article shows how to disable CTRL + MOUSE WHEEL, implement zooming with keyboard and reset the zoom factor to its default value.