Подтвердить что ты не робот

Как я могу принять ключ backspace в событии keypress?

Это мой код:

private void txtAdd_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!(char.IsLetter(e.KeyChar)) && !(char.IsNumber(e.KeyChar)) && !(char.IsWhiteSpace(e.KeyChar)))
    {
        e.Handled = true;
    }
}

Это позволяет мне вводить буквы, цифры и пробелы, но это не позволяет мне делать backspace. Пожалуйста, помогите мне.

4b9b3361

Ответ 1

Мне нравится использовать ! Char.IsControl (e.KeyChar), чтобы все "управляющие" символы, такие как обратный пробел и Буквы с клавиатурой закрываются.

Если вы просто хотите проверить обратное пространство, вы, возможно, сойдете с:

if (e.KeyChar == (char)8 && ...)

Ответ 2

Я использую два следующих сегмента:

Этот параметр ограничивает только текстовое поле, но позволяет управлять ключами:

if (Char.IsDigit(e.KeyChar)) return;
if (Char.IsControl(e.KeyChar)) return;
e.Handled = true;

Этот для удержания текстового поля удваивается, что позволяет "." только и с помощью управляющих клавиш:

if (Char.IsDigit(e.KeyChar)) return;
if (Char.IsControl(e.KeyChar)) return;
if ((e.KeyChar == '.') && ((sender as TextBox).Text.Contains('.') == false)) return;
if ((e.KeyChar == '.') && ((sender as TextBox).SelectionLength == (sender as TextBox).TextLength)) return;
e.Handled = true;

Ответ 3

Ключ backspace не поднимается при событии KeyPress. Таким образом, вам нужно поймать его в событиях KeyDown или KeyUp и установить свойство SuppressKeyPress верно, чтобы предотвратить нажатие клавиши backspace на ваш текст в текстовом поле:

private void txtAdd_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Back)
    {
        e.SuppressKeyPress = true;
    }
}

Ответ 4

Вы должны добавить! (char.IsControl(e.KeyChar)) в ваше предложение и что он.

private void txtNombre_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(char.IsLetter(e.KeyChar)) && !(char.IsNumber(e.KeyChar)) && !(char.IsControl(e.KeyChar)) && !(char.IsWhiteSpace(e.KeyChar)))
            {
                e.Handled = true;
            }
        }

Ответ 5

Из документации:

Событие KeyPress не создается нехарактерными ключами; однако нехарактерные ключи действительно увеличивают события KeyDown и KeyUp.

Ответ 6

private void KeyPressNameSurname(object sender, KeyPressEventArgs e)
 {
     if (char.IsPunctuation(e.KeyChar) || char.IsSymbol(e.KeyChar) || char.IsDigit(e.KeyChar) )
     {
        e.Handled = true;
        myTextBox.Text = "Not Valid";
        myTextBox.Visible = true;
     }
     else
     {
        myTextBox.Visible = false;
     }
  }

Ответ 7

private void Keypressusername(object sender, KeyPressEventArgs e)
{
    e.Handled = !(char.IsLetter(e.KeyChar));
    if (char.IsControl(e.KeyChar))
    {
        e.Handled = !(char.IsControl(e.KeyChar));
    }
    if (char.IsWhiteSpace(e.KeyChar))
    {
        e.Handled = !(char.IsWhiteSpace(e.KeyChar));
    }
}