¿Por qué GetCharIndexFromPosition () no regresa correctamente para el último carácter del cuadro de texto?

public partial class Form1 : Form
{
    TextBox textBox;
    public Form1()
    {
        InitializeComponent();
        textBox = new TextBox() { Height = 30, Width = 200, Text = "Syncfusion Software", Font = new Font("Arial", 11) };
        textBox.MouseMove += textBox_MouseMove;
        this.Controls.Add(textBox);

    }

    void textBox_MouseMove(object sender, MouseEventArgs e)
    {
        var selectionStart = textBox.GetCharIndexFromPosition(e.Location);
        textBox.SelectionStart = selectionStart;
        textBox.SelectionLength = 0;
    }
}

Aquí está mi código, esta es una muestra simple de la que intenté obtener información clara sobreGetCharIndexFromPosition() método deTextBox.

En el movimiento del mouse, obtengo la posición del índice de caracteres utilizando la posición actual del mouse del cuadro de texto y establezco el inicio de selección del cuadro de texto en función de él. De modo que si muevo el mouse, la posición de inicio de selección o de detención se establecerá en función del movimiento del mouse. Pero hubo un problema con cuando el mouse se movió al final del texto, el inicio de la selección no está configurado para durar. establece el último pero antes.

Por ejemplo, si un cuadro de texto contiene texto "stack", si la posición del mouse está después de la "k", la posición de intercalación debe estar al final, pero se muestra entre "c" y "k".GetCharIndexPosition() no devuelve el valor correctamente para el último personaje. Déjame saber la solución para esto

Gracias por adelantado.

Saludos,

Venkatesan R