web-dev-qa-db-fra.com

Positionner le curseur à la fin du texte de la zone de texte

J'ai une zone de texte avec une chaîne affichée déjà en elle. Pour amener le curseur dans la zone de texte que je fais déjà

txtbox.Focus();

Mais comment puis-je obtenir le curseur à la fin de la chaîne dans la zone de texte?

71
Anoushka Seechurn

Sous Windows Forms, vous pouvez contrôler la position du curseur (et la sélection) avec les propriétés txtbox.SelectionStart et txtbox.SelectionLength. Si vous voulez mettre fin à la ligne, essayez ceci:

txtbox.SelectionStart = txtbox.Text.Length;
txtbox.SelectionLength = 0;

Pour WPF, voir cette question .

106
Panu Oksala

Il y a plusieurs options:

txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;

OR

txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;

OR

txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);
63
Vishal Suthar

Vous pouvez définir la position du curseur à l'aide de TextBox.CaretIndex . Si la seule chose dont vous avez besoin est de placer le curseur à la fin, vous pouvez simplement passer la longueur de la chaîne, par exemple:

txtBox.CaretIndex=txtBox.Text.Length;

Vous devez définir l’index du caret sur la longueur, et non sur la longueur-1, car cela placerait le caret avant le dernier caractère.

11
Panagiotis Kanavos

Essayez comme ci-dessous ... cela vous aidera ...

Un certain temps sous Window Form Focus() ne fonctionne pas correctement. Il est donc préférable d’utiliser Select() pour focaliser le champ de texte.

txtbox.Select(); // to Set Focus
txtbox.Select(txtbox.Text.Length, 0); //to set cursor at the end of textbox
1
Pandian