Введите текстовое поле только с буквами, а также только с одним знаком минус (-). Предпочтительно использовать код ASCII. - PullRequest
0 голосов
/ 09 января 2020

Я хочу использовать код ASCII из знак минуса . Есть ли способ сделать это? Используйте знак минус только один раз . 45 - код ASCII знака минус (-)

private void txtcity_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);// e.KeyChar == (char)Keys.45);
}

1 Ответ

0 голосов
/ 09 января 2020

Чтобы разрешить использование символа дефиса / минуса только один раз, вам нужно проверить, содержит ли TextBox его уже. Если это так, вы устанавливаете e.Handled в true. Остальная часть вашей логики c должна работать нормально.

Вы можете использовать что-то вроде этого:

private void txtcity_KeyPress(object sender, KeyPressEventArgs e)
{
    // If you want to use the ASCII code, for some reason.
    const int minusAsciiCode = 45;

    // if (e.KeyChar == '-')
    if (e.KeyChar == (char)minusAsciiCode)
    {
        e.Handled = txtcity.Text.Contains("-");
    }
    else
    {
        e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...