📹 Ютуб-Шортсы

Как сделать чтобы в TextBox вводились только цифры C#

Часто требуется ограничить пользовательский ввод в TextBox только цифрами. В этой статье мы рассмотрим несколько методов, которые позволят нам достичь этой цели в C#.

Метод 1: Использование обработчика событий KeyPress

Первый метод, который мы рассмотрим, основан на создании обработчика событий KeyPress для TextBox. Здесь мы проверяем каждый введенный символ и разрешаем только цифры. Вот пример кода:

csharp

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)

{

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))

{

e.Handled = true;

}

}

В этом примере мы проверяем, является ли введенный символ управляющим символом (например, Backspace) или цифрой. Если это не так, мы устанавливаем Handled в true, чтобы предотвратить ввод символа.

Метод 2: Использование свойства Handled и события KeyDown

Второй метод заключается в использовании обработчика событий KeyDown и установке свойства Handled значения true. Это позволит нам разрешить ввод только цифр. Вот пример кода:

csharp

private void TextBox_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode != Keys.Back && !char.IsDigit((char)e.KeyCode))

{

e.Handled = true;

}

}

В этом примере мы проверяем, является ли нажатая клавиша цифрой или клавишей Backspace. Если это не так, мы устанавливаем Handled в true, чтобы предотвратить ввод символа.

Метод 3: Использование свойства ShortcutsEnabled и события KeyDown

Третий метод основан на использовании свойства ShortcutsEnabled и события KeyDown. При установке свойства ShortcutsEnabled в true мы запрещаем пользователю использовать сочетания клавиш, такие как Ctrl+C (копировать) и Ctrl+V (вставить). Вот пример кода:

csharp

private void TextBox_KeyDown(object sender, KeyEventArgs e)

{

if (e.Control && (e.KeyCode == Keys.C || e.KeyCode == Keys.V))

{

e.Handled = true;

}

}

В этом примере мы проверяем, нажата ли клавиша Ctrl в сочетании с клавишами C или V. Если это так, мы устанавливаем Handled в true, чтобы предотвратить копирование и вставку.

Метод 4: Использование регулярных выражений для WPF

Если вы разрабатываете приложение на платформе WPF, есть отдельный метод для разрешения ввода только цифр. Мы можем использовать регулярное выражение для проверки и ограничения ввода. Вот пример кода:

xaml

<TextBox x:Name="textBox" PreviewTextInput="TextBox_PreviewTextInput"/>

csharp

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)

{

Regex regex = new Regex("[^0-9]+");

e.Handled = regex.IsMatch(e.Text);

}

Здесь мы используем событие PreviewTextInput для применения регулярного выражения, которое разрешает только цифры. Если введенный текст не соответствует регулярному выражению, мы устанавливаем Handled в true, чтобы предотвратить ввод символа.

Полезные советы

  • Помните, что пользователь все равно может вставить текст с помощью контекстного меню или командной строки. Поэтому следует также проверить введенные данные при отправке формы или при нажатии кнопки.
  • Не забывайте предоставить пользователю информацию о причинах неверного ввода и что именно допустимо вводить.

Выводы

На этом мы завершаем статью о том, как разрешить ввод только цифр в TextBox в C#. Мы рассмотрели несколько методов, включая использование обработчика событий KeyPress, свойства Handled и события KeyDown, свойства ShortcutsEnabled и события KeyDown, а также использование регулярных выражений для платформы WPF. Выберите подходящий метод в зависимости от ваших потребностей и платформы разработки. Не забывайте также проверять введенные данные перед их использованием и предоставлять информацию пользователю о правильном формате ввода.

Где снимают Звезды в Африке на самом деле
Вверх