Главная

Главная

Сообщество

Сообщество

Форум

Форум

STM32

STM32

Электроника

Электроника

Raspberry Pi

Raspberry Pi

Уведомления
Очистить всё

[Решено] Как на C# сделать ввод hex значений в TextBox?

(@alexcraft)
New member

Приветствую Сообщество! Попробую объяснить, что мне требуется, точнее что хочется сделать...

В приложении с Windows Forms у меня есть поле ввода - обычный TextBox. Я хочу, чтобы пользователь вводил туда шестнадцатеричные значения, то есть символы от 0 до 9, а также A, B, C, D, E, F, либо то же самое маленькими буквами. То есть все остальные символы должны игнорироваться. Как можно настроить подобную фильтрацию? Желательно максимально просто, но оптимально.

Дополнение: получаем допустимые символы (0 - 9, A - F, a - f), остальные не подходят и не должны появляться в TextBox.


Цитата
Автор темы Опубликовано : 08.03.2023 16:16
Aveal MT
(@aveal)
Top level Admin

Можно в обработчике KeyPress() реализовать:

private void MyTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!(char.IsControl(e.KeyChar) || char.IsDigit(e.KeyChar) ||
         (e.KeyChar >= 'A' && e.KeyChar <= 'F') || (e.KeyChar >= 'a' && e.KeyChar <= 'f')))
    {
        e.Handled = true;
    }
}

ОтветЦитата
Опубликовано : 08.03.2023 16:49
(@alexcraft)
New member

Спасибо, работает! Только не очень понял как...


ОтветЦитата
Автор темы Опубликовано : 08.03.2023 17:29
Aveal MT
(@aveal)
Top level Admin

Тут:

  • char.IsControl(e.KeyChar) - проверяем, является ли символ управляющим (tab, esc и т. д.)
  • char.IsDigit(e.KeyChar) - является ли вводимый символ цифрой от 0 до 9
  • (e.KeyChar >= 'A' && e.KeyChar <= 'F') - от A до F
  • (e.KeyChar >= 'a' && e.KeyChar <= 'f') - от a до f

Если ни одно из этих условий не выполнилось, то попадаем на e.Handled = true, то есть по сути ввод недопустимого символа игнорируется.


ОтветЦитата
Опубликовано : 09.03.2023 13:12
(@alexcraft)
New member

@aveal теперь все понятно, продолжаю ковыряться дальше, скорее всего еще вернусь с вопросами...


ОтветЦитата
Автор темы Опубликовано : 09.03.2023 17:36
Обзор конфиденциальности

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