Почему GetCharIndexFromPosition () не возвращает должным образом последний символ текстового поля?

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;
    }
}

Вот мой код, это простой пример, который я пытался получить четкую информацию оGetCharIndexFromPosition() методTextBox.

При перемещении мыши я получаю положение индекса символа, используя текущую позицию мыши в текстовом поле, и устанавливаю начало выбора текстового поля на его основе. Таким образом, если я перемещаю мышь, то начало выбора или позиция каретки будут установлены на основе перемещения мыши. Но возникла проблема с тем, что при перемещении мыши в конце текста начало выделения не задано последним. он устанавливается последним, но раньше.

Например, если текстовое поле содержит текст «стек», то, если позиция мыши находится после «k», то позиция каретки должна быть в конце, но она отображается между «c» и «k».GetCharIndexPosition() не возвращает значение правильно для последнего символа. Дайте мне знать решение для этого

Заранее спасибо.

С Уважением,

Venkatesan R

Ответы на вопрос(2)

Ваш ответ на вопрос