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