all__
Админ
      
Сообщений: 850
Зарегистрирован: 01.2010
|
Ввод только цифр в textBox, с точкой и удалением (C#)
Задача, обеспечить ввод дробных чисел в textBox.
Я надеялся, что в C# для столь рядовой задачи есть ключ, который берет все заботы по исполнению задачи на себя, но я ошибался.
В бурженете нарыл несколько примеров на эту тему, но все они не поддерживали дробные числа, и даже не позволяли удалять набраные цифры.
В рунете, примеры были другие, но тоже не решали проблемы либо с удалением, либо с дробным числом.
В итоге изысканий и переборов, получился такой пример:
Код:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) && !((e.KeyChar == '.') && (textBox1.Text.IndexOf(".") == -1)))
{
if (e.KeyChar != (char)Keys.Back)
{
e.Handled = true;
}
}
}
Пример поддерживает:
- Ввод только чисел и игнорирует другие символы
- Позволяет ввести только одну точку
- Отслеживает нажатие BackSpace и стандартно удаляет символы
Пример не поддерживает:
- Горячие клавиши относящиеся к управлению текстом такие как Ctrl+C, Ctrl+A и др.
Лучшая благодарность - "Мне нравится", +1 или Like! Вверху страницы.
|
|
| 06.07.2010 7:55 |
|
Гость
Unregistered
|
RE: Ввод только цифр в textBox, с точкой и удалением (C#)
Спасибо за пример, но неплохо было бы добавить еще одно условие:
Код:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
if (!(Char.IsDigit(e.KeyChar)) && !((e.KeyChar == '.') && (textBox1.Text.IndexOf(".") == -1) && (textBox1.Text.Length != 0))) {
if (e.KeyChar != (char)Keys.Back) {
e.Handled = true;
}
}
}
А нужно оно для того, чтобы нельзя было ввести точку первым символом.
|
|
| 12.09.2010 15:14 |
|
Гость
Unregistered
|
RE: Ввод только цифр в textBox, с точкой и удалением (C#)
Благодарю. Очень полезный пример
|
|
| 16.05.2011 22:44 |
|