Небольшой кусок кода, который поможет сделать так, чтобы в текстбокс на форме можно было вводить только цифры.
Добавляем на событие KeyPress текстбокса следующую функцию:
// Функция запрета ввода в текстбоксы не цифр
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Если это не цифра.
if (!Char.IsDigit(e.KeyChar))
{
// Запрет на ввод более одной десятичной точки.
TextBox tb = (TextBox)sender;
if (e.KeyChar != '.' || tb.Text.IndexOf(".") != -1)
{
e.Handled = true;
}
}
}
// ------------------------------------------
Это из книги примеры по С# ? ))
Очень плохо...
ctrl+v не сделать;
Backspace не сделать;
точка вводиться и вызывает ошибку;
Ну вобще то можно в условие добавить проверку на системный ключ, и всё будет работать.
Можно, и даже нужно
Вот на разных форумах нарыл и немного доработал может кому поможет, да есть недоработка можно в начале 0 вводить до бесконечности это надо исправить.
// Проверка на ввод только чисел в textBox- ах, положительных и вещественных чисел
private void textBox_KeyPress (object sender, KeyPressEventArgs e)
{
// Обьявление место конкретного TextBox локальной переменной
TextBox tx = (TextBox) sender;
// Условие на выплнение вода только цифр и знака (-) только перед числом и только одного, а так же (.) только хотябы после одного знака и только одной
if (!(Char.IsDigit (e.KeyChar)) && !((e.KeyChar == '.') && (tx.Text.IndexOf («.») == -1) && (tx.Text.Length != 0)))
{
// обработка кнопки BACKSPACE
if (e.KeyChar != (char) Keys.Back)
{
e.Handled = true;
}
}
}
//фильтр на ввод значений отрицательного
private void tempBox_KeyPress (object sender, KeyPressEventArgs e)
{
// Обьявление место конкретного TextBox локальной переменной
TextBox tb = (TextBox) sender;
// Условие на выплнение вода только цифр и знака (-) только перед числом и только одного, а так же (.) только хотябы после одного знака и только одной
if (!(Char.IsDigit (e.KeyChar)) && (e.KeyChar != '-' || tb.Text.IndexOf («-») != -1 ||tb.Text.Length > 0))
{
// обработка кнопки BACKSPACE
if (e.KeyChar != (char) Keys.Back)
{
e.Handled = true;
}
}
}
Спасибо, интересный код. А с нулем постараемся что-нибудь придумать...
епт...а так никак ?
regex numbrs = new Regex (@"^\d+s");
if (!numbrs.itmatch (бла)){
че за буквы?
}
Можно и так. Подходов много, каждый использует какой ему удобней.