Я использую WinForms, и я изо всех сил пытаюсь сделать все TextBoxes
с GroupBox
, чтобы принимать только цифры в качестве пользовательского ввода. Есть ли способ поднять событие KeyPress для всех TextBoxes
в GroupBox
? Что-то вроде этого может быть:C# Только текстовые текстовые поля в текстовом поле в GroupBox.
private void groupBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)
{
e.Handled = true;
}
}
Я совершенно новый, поэтому, пожалуйста, несите меня. Любая помощь будет принята с благодарностью.
Рассмотрим с помощью элемента управления NumericUpDown вместо TextBox. Он автоматически обрабатывает числовую фильтрацию, а также дает пользователю более интуитивно понятный интерфейс. Но если вы хотите использовать TextBox, чистый объектно-ориентированный способ сделать это - подклассировать встроенный элемент управления TextBox, добавить числовую логику фильтрации, а затем использовать свой подклассовый элемент управления вместо стандартного элемента управления TextBox везде, где это необходимо , –
то, что предлагает @CodyGray, является хорошим и чистым вариантом, но вы можете использовать пустоту, которую вы разместили здесь для каждого текстового поля, привязывая все события нажатия клавиш к той же самой пустоте. – maam27