Por que o GetCharIndexFromPosition () não retorna corretamente para o último caractere da caixa 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;
    }
}

Aqui está o meu código, este é um exemplo simples que tentei obter informações claras sobreGetCharIndexFromPosition() método deTextBox.

No movimento do mouse, obtenho a posição do índice de char usando a posição atual do mouse da caixa de texto e defino o início da seleção da caixa de texto com base nela. Para que, se eu mover o mouse, a posição de início ou de intercalação da seleção seja definida com base no movimento do mouse. Mas houve um problema com o movimento do mouse no final do texto, o início da seleção não está definido para durar. define por último mas antes.

Por exemplo, se uma caixa de texto contiver texto "empilhar", se a posição do mouse estiver após o "k", a posição do cursor deverá estar no final, mas será exibida entre "c" e "k".GetCharIndexPosition() não retorna valor corretamente para o último caractere. Deixe-me saber a solução para isso

Desde já, obrigado.

Saudações,

Venkatesan R

questionAnswers(2)

yourAnswerToTheQuestion