10
votes

C # Positionnement du curseur de texte

Je me sens comme si je manquais simplement une propriété simple, mais pouvez-vous régler le curseur vers la fin d'une ligne dans une zone de texte? XXX

Après tester "." En premier caractère, le curseur va avant que le texte ajouté. Donc, au lieu de "0,123", les résultats sont "1230." sans déplacer le curseur moi-même.

Je m'excuse également s'il s'agit d'une question en double.


0 commentaires

5 Réponses :


2
votes

Réglage de la propriété SelectionStart de la zone de texte contrôlera la position du curseur.


0 commentaires

2
votes

En supposant que vous utilisiez WinForms et non WPF ...

void SetToEndOfLine(TextBox tb, int line)
{
   int loc = 0;
   for (int x = 0; x < tb.Lines.Length && tb <= line; x++)
   {
      loc += tb.Lines[x].Length;
   }
   tb.SelectionStart = loc;
}


0 commentaires

22
votes
t.SelectionStart = t.Text.Length;

0 commentaires

3
votes

dans WPF, vous devez utiliser: xxx

où 0 est le nombre de caractères sélectionné


0 commentaires

1
votes

Ceci sera utile.

        private void textBox_TextChanged(object sender, EventArgs e)
    {
        string c = "";
        string d = "0123456789.";
        foreach (char a in textBox.Text)
        {
            if (d.Contains(a))
                c += a;
        }
        textBox.Text = c;
        textBox.SelectionStart = textBox.Text.Length;
    }


0 commentaires