2 votes

Pourquoi ne puis-je pas appuyer sur CTRL+A ou CTRL+Backspace dans ma zone de texte ?

Si j'essaie d'appuyer sur CTRL + A (pour sélectionner tout le texte de la zone de texte), le bruit de l'erreur Windows se fait entendre.

Si j'essaie d'appuyer sur CTRL + Backspace (pour supprimer le dernier mot au lieu du dernier caractère), le système insère simplement la mention "Caractère inconnu" de Windows (qui ressemble à un rectangle).

Il s'agit juste d'une zone de texte, je n'ai modifié aucune des propriétés.

6voto

Como Hans Passant said

Ctrl+A ne fonctionne pas réellement dans ce mode, vous devez l'implémenter vous-même. Ce n'est pas difficile avec un gestionnaire d'événement KeyDown.

Pour mettre en œuvre ce que vous voulez, vous pouvez utiliser la fonction KeyDown de l'événement textbox

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control)
        {
            if (e.KeyCode == Keys.A)
            {
                textBox1.SelectAll();
            }
            if (e.KeyCode == Keys.Back)
            {
                e.SuppressKeyPress = true;
                int selStart = textBox1.SelectionStart;
                while (selStart > 0 && textBox1.Text.Substring(selStart - 1, 1) == " ")
                {
                    selStart--;
                }
                int prevSpacePos = -1;
                if (selStart != 0)
                {
                    prevSpacePos = textBox1.Text.LastIndexOf(' ', selStart - 1);
                }
                textBox1.Select(prevSpacePos + 1, textBox1.SelectionStart - prevSpacePos - 1);
                textBox1.SelectedText = "";
            }
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X