Si c'est un utilisateur domaine vont entrer du texte dans, s'il vous plaît considérer que certains utilisateurs (comme moi) ont le naturel inclinaison à frapper Backspace quand ils font une faute de frappe. Je trouverais cela gênant si cela efface tout ce que je viens de taper.
Comme alternative, vous pouvez ajouter ce comportement s'ils ont fait un retour arrière. Le code ci-dessous supprimera tout avant le caret sur un Shift-Backspace, mais laissera aussi le comportement attendu de la suppression de la sélection uniquement si l'utilisateur a sélectionné du texte:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// if shift-backspace is pressed and nothing is selected,
// delete everything before the caret
if (e.Shift && e.KeyCode == Keys.Back && textBox1.SelectionLength == 0)
{
textBox1.Text = textBox1.Text.Substring(textBox1.SelectionStart);
e.Handled = true;
}
}
Cela ne ressemble pas à un bonne idée, d'un point de vue de l'utilisabilité. Je pourrais causer la confusion de l'utilisateur, puisque le comportement habituel est de ne supprimer qu'un seul caractère. –
Vous pouvez considérer que tout le texte de la zone de texte apparaît sélectionné chaque fois qu'il reçoit le focus d'entrée de sorte qu'une pression sur la touche de retour arrière (ou n'importe quelle touche, s'ils commencent à taper) effacera la zone de texte. C'est le même comportement que les barres d'adresse de la plupart des navigateurs Web, donc les utilisateurs le trouveront familier. Il peut toujours accomplir ce que vous voulez, tout en conservant la possibilité de supprimer un caractère à la fois si nécessaire. –